我没有得到有序列表,即下面的代码以双精度值的升序排列,这是我尝试过的所有已知方法的代码,但仍然没有得到想要的结果。
locationB.setLatitude(Double.parseDouble(SHOP.get(itemModall.getParent_id()).getLocationlat()));
locationB.setLongitude(Double.parseDouble(SHOP.get(itemModall.getParent_id()).getLocationlog()));
listSort.add(new CUSTOM(MODALITEM.get(y).getParent_id(),distance));
Collections.sort(listSort, CUSTOM::compareTo); //Sorting here
for (CUSTOM ss : listSort) {
Log.e("SSd", ss.getDistance() + "");
}
**This is my sorter class**
class CUSTOM implements Comparable<CUSTOM> {
String id;
double distance;
public CUSTOM(String id, double distance) {
this.id = id;
this.distance = distance;
}
public String getId() {
return id;
}
public double getDistance() {
return distance;
}
@Override
public int compareTo(CUSTOM candidate) {
return (this.getDistance() < candidate.getDistance() ? -1 :
(this.getDistance() == candidate.getDistance() ? 0 : 1));
}
}
答案 0 :(得分:0)
您的课程实现了Comparable
。您可以简单地致电Collections.sort(listSort)
。不需要第二个参数。集合有2种排序方法,一种采用可比较对象的列表,另一种采用对象列表和比较器的实例。
public static <T extends Comparable<? super T>> void sort(List<T> list)
public static <T> void sort(List<T> list, Comparator<? super T> c)
有关可比和比较器的更多信息,请遵循此link