Назад к вопросам
Middle
67
questionbank

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

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

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

  • 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"