我正在尝试按HashMap
的状态对Person
进行排序。
我有一个对象HashMap<String,Person> persons;
,其中包含Array
和
Person
包含字段String name
,add
,age
和status
。
我希望按状态排序。我可以比较对象还是必须拨打persons.getStatus()
?
另外,哪种方式更好?
我试图按照这样排序:
Collections.sort(person, new Comparator<Person>(){
public int compare(Person emp1, Person emp2) {
}
});
答案 0 :(得分:1)
@Override
compareTo()
的{{1}}方法并使用它。这是Object
在排序时调用的方法,并使用返回值来决定顺序。
sort()
答案 1 :(得分:0)
您可以按这种方式按状态排序:
class MyComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
if (p1.getStatus().m > p2.getStatus().m) {
return 1;
} else if (p1.getStatus().m < p2.getStatus().m) {
return -1;
}
return 0;
}
}
并打电话给你的比较器:
Collections.sort(person, new MyComparator());