使用 JAVA 8 Streams 从地图中仅创建 1 个列表,其中地图值是列表

2024-01-24

我有一个地图,其中“值”是项目列表:

Map<User, List<Project>> projectsMap = ...

我想从地图中提取项目,但只有 1 个项目列表:

我已经看到了答案,但它们不适用于我的情况。 我不想要这样的结果:

List<List<Project>> theValueOfTheMap;

我想要的结果是:

List<Project> projects = ... // All the project in the value's map

如何使用 JAVA 8 Streams 实现此目的? 谢谢。 莱昂纳多.


感谢@Holger 的回答。

List<Project> projects = projectsMap.values().stream().flatMap(List::stream)
.collect(‌​Collectors.toList())‌​;

在值映射中的 Collection 为 Null 的情况下避免 NullPointerException 的代码:

projectsMap.values().stream().filter(Objects::nonNull)
.flatMap(List::stream).collect(Collectors.toList());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JAVA 8 Streams 从地图中仅创建 1 个列表,其中地图值是列表 的相关文章

随机推荐