将列表与流 API 合并

2022-08-31 10:53:08

我有以下情况

Map<Key, ListContainer> map; 

public class ListContainer {
  List<AClass> lst;
}

我必须合并地图中对象的所有列表。lstListContainerMap

public static void main(String[] args) {
   List<AClass> alltheObjectsAClass = map.values().stream(). // continue....    
}

任何想法如何,使用Java 8流API?


答案 1

我认为flatMap()就是你要找的。

例如:

 List<AClass> allTheObjects = map.values()
         .stream()
         .flatMap(listContainer -> listContainer.lst.stream())
         .collect(Collectors.toList());

答案 2

替代方法:Stream.concat()

Stream.concat(map.values().stream(), listContainer.lst.stream())
                             .collect(Collectors.toList()