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