BinaryOperator
Функция двух аргументов, где аргументы и результат одного типа.
Доступно с: Java 8
Синтаксис
@FunctionalInterface
public interface BinaryOperator<T> extends BiFunction<T, T, T>Примеры
Операции для reduce():
void main() {
BinaryOperator<Integer> max = BinaryOperator.maxBy(Comparator.naturalOrder());
BinaryOperator<Integer> sum = Integer::sum;
IO.println(max.apply(3, 9));
IO.println(Stream.of(1, 2, 3).reduce(0, sum));
}Результат:
9
6Примечания
Принимается в Stream.reduce() и как функция слияния в Collectors.toMap(). Готовые операции: BinaryOperator.minBy(), BinaryOperator.maxBy(), а также ссылки Integer::sum, Math::max.
См. также
- BiFunction — Функция двух аргументов.
- Stream.reduce() — Сворачивает все элементы потока в одно значение.
- UnaryOperator — Функция, у которой аргумент и результат одного типа.
В учебнике
- Функциональные интерфейсы — Функциональные интерфейсы в Java: аннотация @FunctionalInterface, стандартные Function, Predicate, Consumer, Supplier и их комбинирование.