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的此答案所示,或者如中所示。