我有一个 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());
添加回答
举报
0/150
提交
取消