Я хочу собрать результат списка из параллельного потока в один список. Давайте посмотрим на этот код, чтобы лучше объяснить мою проблему. Это то, что я получаю:
List<Object> a = new ArrayList<>();
List<List<Object>> result a.parallelStream() // I get a List of List
.map(a -> { return new ArrayList(); })
.collect(Collectors.toList());
Но то, что я действительно хочу, больше похоже на это:
List<Object> a = new ArrayList<>();
List<Object> result a.parallelStream() // I want to add all list elements into one List of objects
.map(a -> { return new ArrayList(); })
.collect(Collectors.???);
flatMap
может свернуть элементы внутренних списков в один список:
List<List<Object>> a = ...
List<Object> result = a.stream()
.flatMap (l -> l.stream())
.collect(Collectors.toList());
l -> l.stream()
может быть простоList::stream