Java 根据其他状态对唯一对象进行排序

Java 根据其他状态对唯一对象进行排序,java,Java,我收集了员工的姓名、工资、身份证等信息 TreeSet ts=new TreeSet(); ts.add(new Employee("neeraj", 10000, 123)); ts.add(new Employee("neeraj", 10000, 789)); ts.add(new Employee("ankit", 30000, 345)); ts.add(new Employee("ankit", 40000, 456)); 如何根据薪资对具有

我收集了员工的姓名、工资、身份证等信息

    TreeSet ts=new TreeSet();
    ts.add(new Employee("neeraj", 10000, 123));
    ts.add(new Employee("neeraj", 10000, 789));
    ts.add(new Employee("ankit", 30000, 345));
    ts.add(new Employee("ankit", 40000, 456));

如何根据薪资对具有唯一名称的员工进行排序?

Java 8解决方案:

Collections.sort(employees, Comparator.comparing(Employee::getName)
    .thenComparing(Report::getSalary));

实现
Comparator
接口,并在排序时将此实现与您的集合一起使用。虽然是旧的,但有Java 8答案。这将纯粹按照
薪资进行排序。OP希望“根据薪资对具有唯一姓名的员工进行排序”,即主要按
姓名
排序,其次按
薪资
排序。如何检查唯一姓名?@Andreas Yea,没错。谢谢,我已经编辑了我的答案。可以通过重写equals方法来完成吗?@NeerajThakur否,要么实现
Comparable
compareTo
方法,要么提供一个
Comparator
,例如,如Java 8的此答案所示,或者如中所示。