Найти в Дзене
DEBAGanov

Java 1134. Для чего в стримах предназначены методы flatMap(), flatMapToInt(), flatMapToDouble(), flatMapToLong()?

Методы flatMap(), flatMapToInt(), flatMapToDouble(), flatMapToLong() в Java Stream API используются для выполнения операций преобразования элементов стрима в новый стрим и объединения результатов в один выходной стрим.

В частности, метод flatMap() может быть использован для преобразования каждого элемента стрима в другой стрим, после чего результаты объединяются в единый выходной стрим. Это может быть полезно, когда у вас есть коллекция объектов, каждый из которых может содержать несколько элементов, и вы хотите обрабатывать все элементы, независимо от количества элементов в каждом объекте.

Например, предположим, что у вас есть коллекция списков чисел, и вы хотите получить новый стрим, содержащий все числа из всех списков. Вы можете сделать это, используя метод flatMap() следующим образом:

List<List<Integer>> numbers = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);

List<Integer> allNumbers = numbers.stream()
.flatMap(List::stream)
.collect(Collectors.toList());

// allNumbers now contains [1, 2, 3, 4, 5, 6, 7, 8, 9]

Методы flatMapToInt(), flatMapToDouble(), и flatMapToLong() работают аналогично, но возвращают специализированные стримы для каждого типа данных соответственно: IntStream, DoubleStream, и LongStream.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov