Какой тип интерфейса используется для работы с flatMap в функциональном программировании?

В Java для работы с flatMap используется интерфейс FunctionT, Stream<R> (или аналогичные функциональные интерфейсы, например, FunctionT, Optional<R>), который принимает элемент и возвращает поток (Stream) элементов.

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

Что ответить на собеседовании

В Java для работы с flatMap используется интерфейс Function<T, Stream<R>> (или аналогичные функциональные интерфейсы, например, Function<T, Optional<R>>), который принимает элемент и возвращает поток (Stream) элементов. Метод flatMap затем объединяет эти потоки в один плоский поток.

Подробный разбор

Ответ с пояснениями

В Java для работы с flatMap используется интерфейс Function<T, Stream<R>> (или аналогичные функциональные интерфейсы, например, Function<T, Optional<R>>), который принимает элемент и возвращает поток (Stream) элементов. Метод flatMap затем объединяет эти потоки в один плоский поток.

Пример:

List<String> words = Arrays.asList("hello", "world");
List<String> letters = words.stream()
    .flatMap(word -> Arrays.stream(word.split("")))
    .collect(Collectors.toList());
// letters: [h, e, l, l, o, w, o, r, l, d]

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее