Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: stream, map, flatmap

Чем map отличается от flatMap?

Проверяет знание различий между операциями преобразования в Stream API.

Короткий ответ

  • map: Преобразует каждый элемент стрима в другой элемент (1:1).

  • flatMap: Преобразует каждый элемент в стрим элементов и объединяет их в один стрим (1:N).

Длинный ответ

1. map (1:1)

  • Применяет функцию к каждому элементу.

  • Пример:

    List<String> names = List.of("Alice", "Bob");
    List<Integer> nameLengths = names.stream()
        .map(String::length) // Преобразует String → Integer
        .toList(); // [5, 3]

2. flatMap (1:N)

  • Разбивает элементы на подстримы и объединяет их.

  • Пример:

    List<List<String>> nestedLists = List.of(
        List.of("A", "B"),
        List.of("C", "D")
    );
    List<String> flatList = nestedLists.stream()
        .flatMap(List::stream) // "Разворачивает" List<String> → String
        .toList(); // ["A", "B", "C", "D"]

Вывод:

  • Используйте map для простых преобразований.

  • Используйте flatMap для работы с вложенными структурами.

Уровень

  • Рейтинг:

    1

  • Сложность:

    6

Навыки

  • Java

    Java

Ключевые слова

#stream

#map

#flatmap

Подпишись на Java Developer в телеграм