嗨,我对此很陌生,所以在思考了几天后我不知道如何解决这个问题,我有一个关于 ArrayList 中对象排序的问题。我有一个包含对象的 ArrayList。每个对象都有一个双重“距离”。我想根据最小距离对 ArrayList 中的对象进行排序。
自从我对排序很烂以来,我一直在努力解决这个问题:(如果有人可以帮助我,我将不胜感激,如果我含糊不清,请告诉我,不知道如何解释。
我认为对先前答案的轻微改进是将框放入 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());
首先,最好为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;
}
}
});