对自定义对象地图

时间:2015-12-07 12:49:21

标签: java android sorting

我正在尝试按HashMap的状态对Person进行排序。

我有一个对象HashMap<String,Person> persons;,其中包含Array和     Person包含字段String nameaddagestatus。 我希望按状态排序。我可以比较对象还是必须拨打persons.getStatus()? 另外,哪种方式更好?

我试图按照这样排序:

Collections.sort(person, new Comparator<Person>(){
    public int compare(Person emp1, Person emp2) {

    }
});

2 个答案:

答案 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());