Вопрос проверяет знание Stream API и умение работать с коллекциями в функциональном стиле.
Коллекции можно объединять с помощью Stream.concat, flatMap или добавления элементов в один поток. Stream API позволяет гибко комбинировать данные. Выбор способа зависит от количества коллекций и структуры данных. Чаще всего используют flatMap. Это делает код компактным и читаемым.
Stream API предоставляет несколько способов объединения коллекций без ручных циклов.
Объединение коллекций через Stream API — это преобразование нескольких источников данных в один поток элементов.
Перед перечислением важно понимать: результатом всегда является один Stream.
Stream.concatПодходит для объединения двух потоков.
Stream<Integer> stream =
Stream.concat(list1.stream(), list2.stream());
Плюс — простота
Минус — только два источника
flatMapСамый универсальный и популярный способ.
List<Integer> result = Stream.of(list1, list2)
.flatMap(List::stream)
.toList();
Поддерживает любое число коллекций
Хорошо масштабируется
Несколько вызовов stream()
Объединение через Stream.of
Две коллекции → Stream.concat
Много коллекций → flatMap
flatMap — самый гибкий и читаемый способ объединения коллекций в Stream API.