Java 中如何将比较器写成 lambda 表达式

lambda表达式是一个匿名方法,在java中不能独立执行。相反,它被用来实现由函数接口定义的方法。与任何函数接口和比较器一起使用的lambda表达式是函数接口。比较器接口在对一组对象进行排序时使用。

在下面的示例中,我们可以使用Comparator 接口按名称对员工列表进行排序。

示例

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Employee {
   int id;
   String name;
   double salary;
   public Employee(int id, String name, double salary) {
      super();
      this.id = id;
      this.name = name;
      this.salary = salary;
   }
}
public class LambdaComparatorTest {
   public static void main(String[] args) {
      List<Employee> list = new ArrayList<Employee>();      //添加员工   
      list.add(new Employee(115, "Adithya", 25000.00));
      list.add(new Employee(125, "Jai", 30000.00));
      list.add(new Employee(135, "Chaitanya", 40000.00));
      System.out.println("根据姓名对员工列表进行排序");      //实现 lambda 表达式    
      Collections.sort(list, (p1, p2) -> {
         return p1.name.compareTo(p2.name); 
      }); 
      for(Employee e : list) {
         System.out.println(e.id + " " + e.name + " " + e.salary);
      }
   }
}

输出结果

根据姓名对员工列表进行排序
115 Adithya 25000.0
135 Chaitanya 40000.0
125 Jai 30000.0