Назад к вопросам
Junior — Middle
65
Можете объяснить механизм работы метода flatMap в Stream API и когда его стоит использовать?
Компании, где спрашивали
Stroki
Ответ от нейросети
sobes.tech AI
Метод flatMap в Stream API используется для преобразования каждого элемента стрима в другой стрим, а затем объединяет (флэтит) все полученные стримы в один.
В отличие от map, который преобразует элемент в один объект, flatMap позволяет из одного элемента получить несколько элементов (или вообще ни одного).
Пример использования:
List<String> phrases = List.of("Hello world", "Java streams");
List<String> words = phrases.stream()
.flatMap(phrase -> Arrays.stream(phrase.split(" ")))
.collect(Collectors.toList());
// words будет содержать: ["Hello", "world", "Java", "streams"]
Когда использовать flatMap:
- Когда нужно из одного элемента получить несколько элементов.
- Для работы с вложенными структурами данных (например, список списков).
- Для упрощения цепочек преобразований, чтобы получить плоский поток элементов.