BinaryOperator继承了BiFunction,它相当于两个入参及反参的类型都相等的BiFunction(extends BiFunction
所以他的作用与BiFunction一样,接收两个参数并返回一个结果。
不同的是它提供了两个静态方法:min、max,根据传入的Comparator用来返回一个直接返回最大值、最小值的BiFunction
例子:
BinaryOperator<Integer> min = (integer, integer2) -> integer.compareTo(integer2) <= 0 ? integer : integer2;System.out.println(min.apply(1, 6));System.out.println(":3###############");BinaryOperator<Integer> max = (integer, integer2) -> integer.compareTo(integer2) <= 0 ? integer2 : integer;System.out.println(max.apply(1, 6));System.out.println(":3###############");System.out.println(BinaryOperator.minBy((Comparator<Integer>) (o1, o2) -> o1 >= o2 ? o1.equals(o2) ? 0 : 1 : -1).apply(1,2));
输出:
1:3###############6:3###############1
