Встречается на собеседованиях • сегодня
Какая связь между flatMap в Optional и flatMap в Stream API
Оба flatMap служат для "распаковки" вложенных структур, но работают в разных контекстах:
- Optional.flatMap
ПреобразуетOptional<T>вOptional<U>, избегая вложенностиOptional<Optional<U>>. Если исходныйOptionalпуст, возвращаетOptional.empty().
java
Optional<String> opt = Optional.of("hello");
Optional<Integer> result = opt.flatMap(s -> Optional.of(s.length()));- Stream.flatMap
Преобразует каждый элемент стрима в новый стрим, затем объединяет все стримы в один. Полезно для работы с коллекциями коллекций.
java
List<List<Integer>> nested = Arrays.asList(
Arrays.asList(1, 2),
Arrays.asList(3, 4)
);
List<Integer> flat = nested.stream()
.flatMap(List::stream)
.toList();Общая идея: оба метода устраняют вложенность, но Optional.flatMap работает с единичными значениями, а Stream.flatMap - с последовательностями.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы