Функциональные интерфейсы в Java (из пакета java.util.function) необходимы для поддержки лямбда-выражений и ссылок на методы, позволяя применять функциональное программирование.
Интерфейсы из группы To...Function (такие как ToIntFunction, ToLongFunction, ToDoubleFunction) представляют собой функциональные интерфейсы, которые принимают аргумент любого типа и возвращают значение примитивного типа (int, long, double).
Их основное предназначение:
Function<T, Integer>, Function<T, Long>, Function<T, Double>.mapToInt, mapToLong, mapToDouble.ToIntFunction прямо указывает, что операция вернет целое число, что делает код более читабельным и предсказуемым.Пример использования ToIntFunction в Stream API:
java
Без ToIntFunction и mapToInt пришлось бы использовать map(s -> Integer.valueOf(s.length())), что приводит к упаковке каждого результата.