2017-08-07 51 views
0

enter image description here嗨我有一个List java对象和一个字段是双距离,我想按此字段排序我的列表。它不能正确地工作。Java的Android排序列表中的java对象

我这样做:

Collections.sort(rows, new Comparator<AdapterRooteEntity>() { 
    @Override 
    public int compare(AdapterRooteEntity o1, AdapterRooteEntity o2) { 
     // return o1.getAddress().compareTo(o2.getAddress()); 
     // return Double.compare(Tools.distance(o1.getLat(), 
     // gps.getLatitude(), o1.getLon(), gps.getLongitude()), 
     // Tools.distance(o2.getLat(), gps.getLatitude(), o2.getLon(), 
     // gps.getLongitude())); 
     return Double.compare(o1.getDistance(), o2.getDistance()); 
    } 
}); 
+4

当你说它不能正常工作时,是什么问题? –

+1

该代码有什么问题? –

+0

@kapsym我按距离排序后放了一个屏幕。我不知道为什么这种排序的对象不合适 –

回答

1

你可以让你列表排序在一个非常简单的方法,通过在正确的位置插入每个项目时将它们添加到列表中。

public void sortedInsert(Item item){ 
    for (int i = 0; i< yourList.size(); i++) { 
     if (item.getDistance() < yourList.get(i).getDistance()){ 
      yourList.add(i, item); 
      return; 
     } 
    } 
    // If the item hasn't been inserted 
    yourList.add(item); 
} 
-1

确保o1.getDistance()回报Double,如果没有,用Double.parse(o1.getDistance())o1o2