Core - 2

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


Методы `flatMap()` , `flatMapToInt()` , `flatMapToDouble()` и `flatMapToLong()` в Java Stream используются для преобразования элементов потока в другие элементы или другие потоки, а затем объединения результатов в один поток. Метод `flatMap()` принимает функцию, которая преобразует каждый элемент в поток других элементов, а затем объединяет все полученные потоки в один. В результате получается новый поток, содержащий все элементы из внутренних потоков. Методы `flatMapToInt()` , `flatMapToDouble()` и `flatMapToLong()` работают аналогично, но преобразуют элементы в примитивные числовые потоки (IntStream, DoubleStream, LongStream) соответственно. Вот пример, демонстрирующий использование метода `flatMap()` : List<List<Integer>> numbers = Arrays.asList( Arrays.asList(1, 2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9) ); List<Integer> flattenedNumbers = numbers.stream() .flatMap(List::stream) .collect(Collectors.toList()); System.out.println(flattenedNumbers); В этом примере у нас есть список списков чисел. Мы используем метод `flatMap()` для преобразования каждого внутреннего списка в поток чисел, а затем объединяем все полученные потоки в один. Результатом будет новый список, содержащий все числа из внутренних списков: `[1, 2, 3, 4, 5, 6, 7, 8, 9]` .


Копировать ссылку