class AgeComparator implements Comparator {
@Override
public int compare(Staff o1, Staff o2) {
return Integer.compare(o1.getAge(), o2.getAge());
}
可以将这段Java代码改写为使用Lambda表达式的形式,示例如下:
Comparator<Staff> ageComparator = (o1, o2) -> Integer.compare(o1.getAge(), o2.getAge());
这里使用了Lambda表达式来实现Comparator
接口,其中参数(o1, o2)
表示两个待比较的对象,箭头->
后面的表达式Integer.compare(o1.getAge(), o2.getAge())
表示比较两个对象的年龄大小,Lambda表达式的类型为Comparator<Staff>
,因此可以直接传递给需要使用的函数或方法中。
接下来在使用该比较器时,可以直接传递ageComparator
变量,代码示例如下:
List<Staff> staffList = getList();
Collections.sort(staffList, ageComparator);
这里ageComparator
是定义好的一个Comparator<Staff>
类型的变量,getList()
方法用于获取待排序的Staff列表。在使用Collections.sort
方法时,将ageComparator
作为第二个参数传递给该方法,表示使用该比较器进行排序。