首先按薪水对员工对象列表进行排序,如果薪水相等,则按姓名排序

0 java sorting comparable comparator

是否可以首先按员工对象的工资对员工对象进行排序,如果两个对象的工资相等,然后使用比较器和比较器接口按名称对它们进行比较?

例如,我有一个 Employee 类,如下所示

public class Employee{
    private int salary;
    private int name;
    public Employee(salary,name){
        this.salary = salary;
        this.name = name;
    }
    //...........getter methods...........
}
Run Code Online (Sandbox Code Playgroud)

现在假设我们有一个 Employee 对象列表,其中包含一些工资金额和姓名。我想使用比较器或类似的接口,并以这样的方式对列表进行排序:列表根据薪水排序,如果薪水相同,那么在这种情况下,这两个 Employee 对象必须按其名称排序。有人可以告诉我是否可能吗?代码片段将不胜感激。

Luk*_*der 8

Java 8 使这变得非常简单:

List<Employee> list = ...
list.sort(Comparator.comparing(Employee::getSalary).thenComparing(Employee::getName));
Run Code Online (Sandbox Code Playgroud)