Специализации функциональных интерфейсов

Author: Tatyana Milkina

1. Бинарные специализации функциональных интерфейсов

Существуют бинарные специализации (binary specializations) интерфейсов Predicate, Consumer, Function и UnaryOperator, которые принимают на вход два элемента.

Интерфейс Функциональный дескриптор Описание
BiConsumer<T, U>
(T, U) -> void
Представляет операцию, которая принимает на вход два элемента и не возвращает результат.
BiFunction<T, U, R>
(T, U)  -> R
Представляет операцию, которая принимает на вход два элемента и возвращает результат.
BiPredicate<T, U>
(T, U) -> boolean
Представляет операцию, которая принимает на вход два элемента и возвращает значение boolean.
BinaryOperator<T>
(T, T) -> T
Представляет операцию, которая принимает на вход два элемента одного типа и возвращает значение того же типа.

2. Примитивные специализации функциональных интерфейсов

2.1. Predicate

Интерфейс Описание
IntPredicate
Принимает на вход значение типа int возвращает значение типа boolean.
LongPredicate
Принимает на вход значение типа long возвращает значение типа boolean.
DoublePredicate
Принимает на вход значение типа double возвращает значение типа boolean.

2.2. Consumer

Интерфейс Описание
IntConsumer

Принимает на вход значение типа int и ничего не возвращает.

LongConsumer

Принимает на вход значение типа long и ничего не возвращает.

DoubleConsumer
Принимает на вход значение типа double и ничего не возвращает.

2.3. Function

Принимающие примитивные специализации

Интерфейс Описание
IntFunction<R>

Принимает на вход значение типа int и возвращает значение типа R.

LongFunction<R>
Принимает на вход значение типа long и возвращает значение типа R.
DoubleFunction<R>
Принимает на вход значение типа double и возвращает значение R.

Производящие примитивные специализации

Интерфейс Описание
ToIntFunction<T>

Принимает на вход значение типа T и возвращает значение типа int.

ToDoubleFunction<T>

Принимает на вход значение типа T и возвращает значение типа double.

ToLongFunction<T>

Принимает на вход значение типа T и возвращает значение типа long.

Принимающие  и производящие примитивные специализации

Интерфейс Описание
IntToDoubleFunction
Принимает на вход значение типа int и возвращает значение типа double.
IntToLongFunction
Принимает на вход значение типа int и возвращает значение типа long.
LongToDoubleFunction
Принимает на вход значение типа long и возвращает значение типа double.
LongToIntFunction
Принимает на вход значение типа long и возвращает значение типа int.
DoubleToIntFunction
Принимает на вход значение типа double и возвращает значение типа int.
DoubleToLongFunction
Принимает на вход значение типа double и возвращает значение типа long.

2.4. Supplier

Интерфейс Описание
BooleanSupplier

Возвращает значение типа boolean.

IntSupplier
Возвращает значение типа int.
LongSupplier
Возвращает значение типа long.
DoubleSupplier
Возвращает значение типа double.

2.5. UnaryOperator

Интерфейс Описание
IntUnaryOperator
Принимает и возвращает значение типа int.
LongUnaryOperator
Принимает и возвращает значение типа long.
DoubleUnaryOperator
Принимает и возвращает значение типа  double.

2.6. BinaryOperator

Интерфейс Описание
IntBinaryOperator
Принимает на вход два значения типа int и возвращает значение типа int.
LongBinaryOperator
Принимает на вход два значения типа long и возвращает значение типа long.
DoubleBinaryOperator
Принимает на вход два значения типа double и возвращает значение типа double.

2.7. BiConsumer

Интерфейс Описание
ObjIntConsumer<T>
Принимает на вход два значения: типа int и Object.
ObjLongConsumer<T>
Принимает на вход два значения: типа long и Object.
ObjDoubleConsumer<T>
Принимает на вход два значения: типа double и Object.  

2.8. BiFunction

Интерфейс Описание
ToIntBiFunction<T, U>
Принимает на вход два объекта и возвращает значение типа int.
ToLongBiFunction<T, U>
Принимает на вход два объекта и возвращает значение типа long.
ToDoubleBiFunction<T, U>
Принимает на вход два объекта и возвращает значение типа double. 
Курс 'Java для начинающих' на Udemy Курс 'Java для начинающих' на Udemy
Читайте также:
Комментарии