为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Java Stream API 从 Map 中提取特定实例变量的值?

如何使用 Java Stream API 从 Map 中提取特定实例变量的值?

智慧大石 2021-08-19 18:26:37
我有一个 HashMap,每个键的值都是一个用户定义的对象。此用户定义的对象具有 ArrayList 类型的变量。如何使用 Java 流 API 将此 ArrayList 提取到一个 List 中。所以,我的 HashMap 的大小是 3。每个用户定义对象内的数组列表的大小是 1。最终输出应该是一个大小为 3 的数组列表我的对象是class XYZ{    List<ABC> list;} 我的地图有{"1", XYZ_1},{"2",XYZ_2},{"3",XYZ_3}.我想从每个对象中提取列表的值XYZ_1, XYZ_2,XYZ_3
查看完整描述

1 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

你正在寻找 Stream::flatMap


Map<Key, List<CustomClass>> map = new HashMap<>();


List<CustomClass> data = map.values().stream()

        .flatMap(Collection::stream)

        .collect(Collectors.toList());

编辑


由于您有一个包含列表的类,因此您可以将代码更改为如下所示


Map<KeyClass, CustomClass> map = new HashMap<>();


List<?> data = map.values().stream()

                    .map(CustomClass::getList)

                    .flatMap(List::stream)

                    .collect(Collectors.toList());


查看完整回答
反对 回复 2021-08-19
  • 1 回答
  • 0 关注
  • 450 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信