Gymterview
junior

Для чего нужны функциональные интерфейсы ToDoubleFunction, ToIntFunction и ToLongFunction?

Эти интерфейсы принимают один аргумент обобщённого типа T и возвращают примитивный результат. Они являются специализациями Function, оптимизированными для возврата примитива.

Интерфейс Вход Выход
ToDoubleFunction<T> T double
ToIntFunction<T> T int
ToLongFunction<T> T long

Пример: ToIntFunction используется в Stream.mapToInt():

Пример
List<String> words = List.of("a", "bb", "ccc");
int[] lengths = words.stream()
    .mapToInt(String::length) // String::length — это ToIntFunction<String>
    .toArray(); // [1, 2, 3]

На собеседовании: покажите связь с Stream API — именно в mapToInt/mapToDouble/mapToLong эти интерфейсы используются чаще всего.