如何使用 BinaryOperator接口在 Java 中的 lambda 表达式中?


BinaryOperator<T>是 java.util.function 包的一个函数式接口,只拥有一个抽象方法。**Lambda**表达式方法引用BinaryOperator 对象用作其目标。**BinaryOperator<T>** 接口表示一个函数,该函数接受一个类型为T的参数并返回相同类型的的值。

BinaryOperator<T> 接口包含两个静态方法,minBy()maxBy()。**minBy() 方法返回一个BinaryOperator,该方法根据特定比较器返回**两个元素中较大的那个**,而 maxBy() 方法返回一个 BinaryOperator,该方法根据特定比较器返回**两个元素中较小的那个**。

语法

@FunctionalInterface
public interface BinaryOperator<T> extends BiFunction<T, T, T>

示例

import java.util.function.BinaryOperator;

public class BinaryOperatorTest {
   public static void main(String[] args) {
      BinaryOperator<Person> getMax = BinaryOperator.maxBy((Person p1, Person p2) -> p1.age-p2.age);

      Person person1 = new Person("Adithya", 23);
      Person person2 = new Person("Jai", 29);
      Person maxPerson = getMax.apply(person1, person2);
      System.out.println("Person with higher age : 
"+ maxPerson);       BinaryOperator<Person> getMin = BinaryOperator.minBy((Person p1, Person p2) -> p1.age-p2.age);       Person minPerson = getMin.apply(person1, person2);       System.out.println("Person with lower age :
"+ minPerson);    } } // Person class class Person {    public String name;    public Integer age;    public Person(String name, Integer age) {       this.name = name;       this.age = age;    }    @Override    public String toString(){       return "Name : "+name+", Age : "+age;    } }

输出

Person with higher age :
Name : Jai, Age : 29
Person with lower age :
Name : Adithya, Age : 23

更新于:13-Jul-2020

750 次浏览

开启你的 职业生涯

完成课程即可获得认证

开始
广告
© . All rights reserved.