Встречается на 9% собеседований по Java

В чем разница между методами map и flatMap в Stream API

map и flatMap — методы Stream API для преобразования элементов, но работают по-разному:

  • map — применяет функцию к каждому элементу и возвращает поток с результатами (1:1).
    Пример:
    java
    List<String> names = List.of("John", "Alice");
    List<Integer> lengths = names.stream()
        .map(String::length) // преобразует String в int
        .toList(); // [4, 5]
  • flatMap — преобразует каждый элемент в поток и "разглаживает" результаты в один поток (1:N).
    Пример:
    java
    List<List<String>> nested = List.of(List.of("a", "b"), List.of("c"));
    List<String> flat = nested.stream()
        .flatMap(List::stream) // "разворачивает" вложенные списки
        .toList(); // ["a", "b", "c"]

Ключевое отличие:
map сохраняет структуру (один элемент → один результат), а flatMap "разворачивает" вложенные потоки в единую последовательность.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы