【问题标题】:Sorting unique objects on basis of other states [duplicate]根据其他状态对唯一对象进行排序[重复]
【发布时间】:2017-08-26 21:58:53
【问题描述】:

我收集了员工的姓名、薪水、身份证等状态。

    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));

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

【问题讨论】:

  • 实现Comparator 接口并在排序时将此实现与您的集合一起使用。
  • duplicate 是旧的,但确实有 Java 8 答案 further down

标签: java


【解决方案1】:

Java 8 解决方案:

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

【讨论】:

  • 这将按salary纯粹排序。 OP 希望“根据薪水对具有唯一名称的员工进行排序”,即主要name次要 i>salary.
  • 如何检查唯一名称?
  • @Andreas 是的,没错。谢谢,我已经编辑了我的答案。
  • 可以通过重写equals方法来完成吗?
  • @NeerajThakur 不,要么实现 Comparable<Employee>compareTo 方法,要么提供 Comparator<Employee>,例如如Java 8的this answer所示,或duplicate link所示。
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 2017-04-06
  • 2018-11-14
  • 2020-05-03
  • 2017-04-06
  • 2011-09-09
  • 2017-09-06
  • 2014-05-29
相关资源
最近更新 更多