package com.lm; import org.junit.Test; import java.util.Arrays; import java.util.Collections; import java.util.List; public class TestLambda9 { List<Employee> employees = Arrays.asList( new Employee("张三",18,9999), new Employee("李四",58,8888), new Employee("王五",48,7777), new Employee("赵六",38,6666), new Employee("田七",38,5555) ); @Test public void test1() { Collections.sort(employees, (e1, e2)->{ if(e1.getAge()== e2.getAge()){ return e1.getName().compareTo(e2.getName());//年龄相等按姓名比 }else{ return Integer.compare(e1.getAge(),e2.getAge()); } }); for (Employee employee : employees) { System.out.println(employee.toString()); } System.out.println("--------------------------"); } }
package com.lm; public class Employee { public Employee(String name, int age, double salary) { this.name = name; this.age = age; this.salary = salary; } private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } private double salary; @Override public String toString() { return "Employee{" + "name='" + name + '\'' + ", age=" + age + ", salary=" + salary + '}'; } }