BinaryOperator继承了BiFunction,它相当于两个入参及反参的类型都相等的BiFunction(extends BiFunction

    所以他的作用与BiFunction一样,接收两个参数并返回一个结果。

    不同的是它提供了两个静态方法:min、max,根据传入的Comparator用来返回一个直接返回最大值、最小值的BiFunction

    例子:

    1. BinaryOperator<Integer> min = (integer, integer2) -> integer.compareTo(integer2) <= 0 ? integer : integer2;
    2. System.out.println(min.apply(1, 6));
    3. System.out.println(":3###############");
    4. BinaryOperator<Integer> max = (integer, integer2) -> integer.compareTo(integer2) <= 0 ? integer2 : integer;
    5. System.out.println(max.apply(1, 6));
    6. System.out.println(":3###############");
    7. System.out.println(BinaryOperator.minBy((Comparator<Integer>) (o1, o2) -> o1 >= o2 ? o1.equals(o2) ? 0 : 1 : -1).apply(1,2));

    输出:

    1. 1
    2. :3###############
    3. 6
    4. :3###############
    5. 1