ArrayList的排序两次显示第一项

时间:2019-01-12 11:22:38

标签: android sorting

我尝试根据用户和位置之间的距离对我的arrayList进行排序。为此,我创建了以下两种方法:

   private void getDistanceBetweenUserAndMarket(ArrayList<SellerObject> seller) {

    for (int  i = 0; i<seller.size(); i++) {
        SellerObject se = seller.get(i);
        Location storeLoc = new Location("");

        storeLoc.setLatitude(Double.parseDouble(se.getLat()));
        storeLoc.setLongitude(Double.parseDouble(se.getLng()));
        if (storeLoc != null && mlastLocation != null) {
            Float distanceInMetres = mlastLocation.distanceTo(storeLoc);
            Float distanceInKm = distanceInMetres / 1000;
            DecimalFormat df = new DecimalFormat("#.##");
            se.setDistance(distanceInKm);
            seller.set(i, se);
        }
    }

    sortArrayList(seller);
}

private void sortArrayList(ArrayList<SellerObject> seller) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        seller.sort(Comparator.comparing(SellerObject::getDistance));
    }
    getProducts(seller);
}

重复项是通过最后一种方法创建的。同样奇怪的现象是,有时最高值有时在最高值处,有时最低。我想将最低的价格放在顶部

0 个答案:

没有答案