Sobes.tech
Junior — Middle
97

Wat is het verschil tussen de methoden map en flatMap in de Stream API bij het verwerken van datastromen?

Bedrijven waar gevraagd werd
Ifellow

Antwoord van AI

sobes.tech AI

Методы map и flatMap в Stream API служат для преобразования элементов потока, но работают по-разному:

  • map применяет функцию к каждому элементу и возвращает поток преобразованных элементов. Если функция возвращает поток, то результатом будет поток потоков.

  • flatMap применяет функцию, которая возвращает поток для каждого элемента, а затем "расплющивает" (флэтит) эти потоки в один общий поток.

Пример:

List<List<String>> listOfLists = Arrays.asList(
    Arrays.asList("a", "b"),
    Arrays.asList("c", "d")
);

// map вернет Stream<List<String>>
Stream<List<String>> stream1 = listOfLists.stream().map(list -> list);

// flatMap вернет Stream<String>
Stream<String> stream2 = listOfLists.stream().flatMap(list -> list.stream());

stream2.forEach(System.out::println); // Выведет a b c d