Методы 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