Junior — Middle
103
Was ist der Unterschied zwischen den Methoden map und flatMap in der Stream API bei der Verarbeitung von Datenströmen?
Unternehmen wurden gefragt
Ifellow
Antwort von AI
sobes.tech KI
Методы 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