Java 8 BiFunction示例
时间: 2024-03-20 16:41:13 浏览: 27
BiFunction是Java 8中的一个函数式接口,它接受两个参数并返回一个结果。下面是一个使用BiFunction的示例:
假设我们有一个名为Person的类,它有两个属性:姓名和年龄。我们要对一组Person对象进行排序,按照年龄从小到大排序。我们可以使用BiFunction来实现这一功能。
首先,我们定义一个BiFunction来比较两个Person对象的年龄:
```
BiFunction<Person, Person, Integer> ageComparator = (p1, p2) -> p1.getAge() - p2.getAge();
```
然后,我们可以使用这个BiFunction来对Person对象进行排序:
```
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 30));
people.add(new Person("Charlie", 20));
Collections.sort(people, ageComparator);
for (Person person : people) {
System.out.println(person.getName() + " " + person.getAge());
}
```
这将输出:
```
Charlie 20
Alice 25
Bob 30
```
这里我们使用了Collections.sort()方法对Person对象进行排序。该方法接受一个List和一个Comparator作为参数,我们将上面定义的ageComparator传递给它来进行排序。
阅读全文