Create only 1 list from a map where map value is list using JAVA 8 Streams

佐手、 提交于 2019-12-02 13:27:49

Thanks @Holger for the answer.

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

Code to avoid NullPointerException in case a Collection in the value map is Null:

projectsMap.values().stream().filter(Objects::nonNull)
.flatMap(List::stream).collect(Collectors.toList());
projectsMap.values().stream().reduce((v1, v2) -> Stream.concat(v1.stream(), v2.stream()).collect(Collectors.toList()))

Map has a methos to retrieve all the values from it.

You just need to call projectsMap.values().stream().flatMap(List::stream).collect(Collectors.toList()) to make a List os all objects of the map values.

EDIT: forgot to add flatMap, as Holger commented.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!