Sobes.tech
Назад к вопросам
Junior — Middle
65

Можешь показать пример применения метода flatMap в Stream API для обработки коллекций?

Компании, где спрашивали
Тетрасофт

Ответ от нейросети

sobes.tech AI

Метод flatMap в Stream API используется для преобразования каждого элемента потока в другой поток и последующего объединения всех этих потоков в один.

Это полезно, когда у вас есть коллекция коллекций, и вы хотите получить один плоский поток всех элементов.

Пример: есть список списков строк, нужно получить один список всех строк:

import java.util.*;
import java.util.stream.*;

public class FlatMapExample {
    public static void main(String[] args) {
        List<List<String>> listOfLists = Arrays.asList(
            Arrays.asList("apple", "banana"),
            Arrays.asList("orange", "pear"),
            Arrays.asList("grape")
        );

        List<String> flatList = listOfLists.stream()
            .flatMap(Collection::stream) // преобразуем каждый внутренний список в поток и объединяем
            .collect(Collectors.toList());

        System.out.println(flatList); // [apple, banana, orange, pear, grape]
    }
}

Здесь flatMap раскрывает вложенные списки в один поток элементов.