Для чего используются функциональные интерфейсы BinaryOperator<T>, DoubleBinaryOperator, IntBinaryOperator и LongBinaryOperator?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

  • BinaryOperator<T>: Принимает два аргумента типа T и возвращает результат типа T.
  • DoubleBinaryOperator: Принимает два аргумента типа double и возвращает результат типа double.
  • IntBinaryOperator: Принимает два аргумента типа int и возвращает результат типа int.
  • LongBinaryOperator: Принимает два аргумента типа long и возвращает результат типа long.

Они часто используются в стримах для агрегирующих операций, таких как суммирование или нахождение минимума/максимума.

Пример использования IntBinaryOperator:

// Представляет операцию сложения двух int
// Это аналог (a, b) -> a + b
IntBinaryOperator sumOperator = Integer::sum;

int result = sumOperator.applyAsInt(5, 3); // result будет 8

Пример использования BinaryOperator<T>:

// Представляет операцию нахождения максимума двух String (по алфавитному порядку)
BinaryOperator<String> maxOperator = BinaryOperator.maxBy(String::compareTo);

String maxString = maxOperator.apply("apple", "banana"); // maxString будет "banana"

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее