升序未得到双精度值的排序数组列表

时间:2019-02-07 08:58:12

标签: java database sorting

我没有得到有序列表,即下面的代码以双精度值的升序排列,这是我尝试过的所有已知方法的代码,但仍然没有得到想要的结果。

    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));

        }
    }

1 个答案:

答案 0 :(得分:0)

您的课程实现了Comparable。您可以简单地致电Collections.sort(listSort)。不需要第二个参数。集合有2种排序方法,一种采用可比较对象的列表,另一种采用对象列表和比较器的实例。

  1. public static <T extends Comparable<? super T>> void sort(List<T> list)
  2. public static <T> void sort(List<T> list, Comparator<? super T> c)

有关可比和比较器的更多信息,请遵循此link