Выбор ответа Junior Лямбды и Stream API спрашивают часто обновлено
map и flatMap
Вопрос
Что вернёт List.of("a b", "c").stream().flatMap(s -> Arrays.stream(s.split(" "))).toList()?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: [a, b, c]. flatMap превращает каждый элемент в стрим и склеивает все стримы в один: a, b, c.
Варианты ответа
[[a, b], [c]][a b, c][a, b, c]правильный ответ- Ошибку компиляции: flatMap принимает только List
Разбор
flatMap превращает каждый элемент в стрим и склеивает все стримы в один: a, b, c. Вложенная структура получилась бы с map(s -> s.split(" ")), но это был бы стрим массивов. Без разбиения исходные строки остались бы как есть. flatMap принимает функцию, возвращающую любой Stream.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Стрим без терминальной операции
Следующий вопрос
Функциональные интерфейсы и их методы