map преобразует каждый элемент стрима в новый элемент, возвращая стрим с тем же количеством элементов.
flatMap преобразует каждый элемент стрима в стрим элементов, а затем объединяет эти вложенные стримы в один плоский стрим. Используется, когда преобразование одного элемента приводит к нескольким элементам.
Пример:
Предположим, у нас есть список списков строк: List<List<String>> listOfLists.
Использование map:
java
Использование flatMap:
java
Сравнительная таблица:
| Операция | Вход | Преобразование | Выход | Назначение |
|---|---|---|---|---|
map | Stream<T> | T -> R | Stream<R> | Преобразование каждого элемента |
flatMap | Stream<T> | T -> Stream<R> | Stream<R> | Преобразование каждого элемента в стрим и объединение |