嗨,我对此非常陌生,所以我不知道如何在思考几天之后弄清楚这一点,我对ArrayList中对象的排序有疑问。我有一个包含对象的ArrayList。每个对象都有一个双“距离”。我想基于最小距离在ArrayList中对对象进行排序。
我一直在努力研究这个问题,因为我厌倦了排序:(如果有人可以帮助我,我会很感激,并告诉我,如果我要模糊,不知道如何解释它。
答案 0 :(得分:2)
我认为前一个答案略有改进是装入Double然后使用compareTo
Collections.sort(list, new Comparator<MyObject>() {
public int compare(MyObject o1, MyObject o2) {
return new Double(o1.getDistance()).compareTo(o2.getDistance());
}
});
如果您想先排序最大,请转到
return new Double(o2.getDistance()).compareTo(o1.getDistance());
答案 1 :(得分:1)
首先,为您所在类中的distance
属性提供访问器是很好的。
然后,为了根据其中对象的distance
字段对列表进行排序,您可以使用Comparator
接口的匿名实现。
List<MyObject> list = ...;
Collections.sort(list, new Comparator<MyObject>() {
public int compare(MyObject o1, MyObject o2) {
if (o1.getDistance() == o2.getDistance()) {
return 0;
} else {
return o1.getDistance() > o2.getDistance() ? 1 : -1;
}
}
});