2013-06-13 32 views
-2

嗨,我很新,所以我不知道如何解决思考几天后,我有一个问题关于ArrayList内的对象的排序。我有一个包含Objects的ArrayList。每个对象都有一个双“距离”。我想根据最小距离对ArrayList中的对象进行排序。根据双精度数组排序对象的Arraylist?

我一直在努力在这一段时间,因为我吮排序:(如果任何人都可以帮助我,我将不胜感激,让我知道如果我是模糊的,不知道如何解释它。

+4

的可能重复[排序对象集合](http://stackoverflow.com/questions/1206073/sorting-a-collection-of-objects)。另请参阅:[根据名称对联系人的ArrayList进行排序?](http://stackoverflow.com/questions/1814095/sorting-an-arraylist-of-contacts-based-on-name?lq=1)和[Sort自定义对象的属性的ArrayList](http://stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property)。 –

+0

在标题中输入可以给你许多相关的“可能已经有答案的问题”。 OP没有在这里付出太多的努力... – Zong

+0

我做了搜索,但无法理解其中的大多数,我很新编程:( –

回答

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; 
     } 
    } 
}); 
+0

Omg yes!谢谢!我一直试图弄清楚这一点,它终于顺利运行了:D –

1

我想起以前的答案稍有好转是盒子放到一个双然后使用的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()); 
相关问题