BinaryOperator 二元操作符, 传入的两个参数的类型和返回类型相同, 继承BiFunctionBinaryOperator:两个T作为输入,返回一个T作为输出,对于“reduce”操作很有用
我们来看一下BinaryOperator的源码:
我们首先来看minBy
/**
* 返回{@link BinaryOperator},它根据指定的{@code Comparator}返回两个元素中较小的一个。
*
* @param <T> 比较器的输入参数的类型
* @param 比较器 a {@code Comparator}用于比较这两个值
* @return 根据提供的{@code Comparator},{@code BinaryOperator}返回较小的操作数
* @throws NullPointerException if the argument is null
*/
public static <T> BinaryOperator<T> minBy(Comparator<? super T> comparator) {
Objects.requireNonNull(comparator);
return (a, b) -> comparator.compar