Подтвердить что ты не робот

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 stream API?

4b9b3361

Ответ 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()