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 вдобавок содержат дефолтные реализации методов для композиции операторов.