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

我有一个 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


智慧大石
浏览 453回答 1
1回答

LEATH

你正在寻找 Stream::flatMapMap<Key, List<CustomClass>> map = new HashMap<>();List<CustomClass> data = map.values().stream()&nbsp; &nbsp; &nbsp; &nbsp; .flatMap(Collection::stream)&nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.toList());编辑由于您有一个包含列表的类,因此您可以将代码更改为如下所示Map<KeyClass, CustomClass> map = new HashMap<>();List<?> data = map.values().stream()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .map(CustomClass::getList)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .flatMap(List::stream)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.toList());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java