我有一张地图,其中“值”是项目列表:
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());