如何使用 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
廣告