【发布时间】:2011-09-12 16:01:35
【问题描述】:
我有一个 Persons 对象列表,其中包含两个属性名称和年龄。我想按年龄升序对这个列表进行排序,排序应该是所有名字相同的人都应该在列表的底部。
【问题讨论】:
-
您的问题是什么?你试过什么?
-
很难相信您在提出这个问题之前做了任何研究。
-
我写了一个 PersonComparator 类,它实现了 Comparator 接口并覆盖了 compare()。以下是源代码:
-
public int compare(Person p1, Person p2) { int comparison = 0; switch(p) { case AGE_ASC: if(p1.getAge()== p2.getAge()) { // 我需要在这里做些什么吗? } else { 比较 = p1.getAge() - p2.getAge(); if(comparison!=0) 返回比较; } 休息; case AGE_DESC: 比较 = p2.getAge() - p1.getAge(); if(comparison!=0) 返回比较;休息; }
-
我建议您先过滤掉重复项,然后将它们存储在单独的列表中。可能将它们从原始列表中删除。一旦你这样做了,按照下面的建议进行排序。要查找重复项,请参阅:stackoverflow.com/questions/6737212/…
标签: java sorting collections