Как собрать несколько списков в один список с помощью java-потоков?
Как я могу собрать несколько значений List
в один список, используя java-streams
?
List<MyListService> services;
services.stream().XXX.collect(Collectors.toList());
interface MyListService {
List<MyObject> getObjects();
}
Поскольку у меня есть полный контроль над интерфейсом: или я должен изменить метод, чтобы возвращать Array вместо List?
Ответы
Ответ 1
Вы можете собирать списки, содержащиеся в MyListService
случаях с flatMap
:
List<MyObject> list = services.stream()
.flatMap(s -> s.getObjects().stream())
.collect(Collectors.toList());