Back to questions
Junior — Middle
59
Какое отличие между методами map и flatMap в Stream API при обработке потоков данных?
Companies where asked
Ifellow
Answer from 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