Junior — Middle
105
Mis vahe on meetoditel map ja flatMap Stream API-s andmete voogude töötlemisel?
Ettevõtted, kust küsiti
Ifellow
Vastus AI-lt
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