🔥 Перечислите стандартные функциональные интерфейсы



Стандартная библиотека содержит пакет java.util.function, в котором хранятся функциональные интерфейсы для большинства случаев жизни. Их можно разделить на 5 групп:



Функции

Обычная обобщенная функция – интерфейс Function<T, R>. Принимает параметр и возвращает значение другого типа. Для примитивов есть не-generic специализации – семейство интерфейсов XtoYFunction. (Здесь и далее вместо X и Y подставляются названия примитивов).



Бинарные функции – функции с двумя параметрами и возвращаемым значением. BiFunction<T, U, R>, ToXBiFunction<T, U>.



Поставщики (Suppliers)

Интерфейсы Supplier<T>, XSupplier – не принимают ничего, возвращают (поставляют) значение.



Потребители (Consumers)

Consumer<T>, XConsumer – принимают (потребляют) значение, ничего не возвращают.

Бинарный вариант, BiConsumer<T, U> и XYConsumer, потребляет два параметра.



Предикаты

Predicate<T>, XPredicate – принимают параметр, возвращают boolean. Кроме самой функции содержат дефолтные реализации логических операций.



Операторы

Унарный (UnaryOperator<T>) и бинарный (BinaryOperator<T>) – просто функция и би-функция с одинаковым типом параметров и результата. Специализации для примитивов XUnaryOperator и XBinaryOperator вдобавок содержат дефолтные реализации методов для композиции операторов.





Полезная шпаргалка



#Классы



@javatg