web-dev-qa-db-ja.com

Java 8:リストをストリームAPIとマージする

次の状況があります

Map<Key, ListContainer> map; 

public class ListContainer{
  List<AClass> lst;
}

lstマップのListContainerオブジェクトのすべてのリストMapをマージする必要があります。

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

どのような方法で、Java 8ストリームAPIを使用していますか?

66
mat_boy

flatMap() はあなたが探しているものだと思います。

例えば:

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

代替:Stream.concat()

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