Collections. sort(用于list排序),Collections. swap(用于位置调换)的使用

javajdk自带排序方法,1参传入list,2参传入自带Comparator泛型类,*10是因为我要做double排序我下面有些转换double保留一位小数点,

//根据最近距离排序
Collections.sort(storeList,new Comparator(){
    @Override
    public int compare(Store s1, Store s2) {
        //因为只有一个小数点,乘以10就没有小数点了,所以不管了,强转
        int km1 = (int) s1.getKm() * 10;
        int km2 = (int) s2.getKm() * 10;
        int num = km1 - km2;
        int num1 = (num == 0 ? s1.getStoreName().compareTo(s2.getStoreName()) : num);
        return num1;
    }
});
 
  
Double[] kms = TencentMapAPIUtils.getLocation(storeList.size(),fromStart,sb.toString());
//保留一位小数点
for (int i = 0;i;i++){
    //先四舍五入保留一位小数点
    BigDecimal bg = new BigDecimal(kms[i]);
    double km = bg.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
    //存入store的km
    storeList.get(i).setKm(km);
}

这个是切换list位置,2个list位置切换

Collections.swap(List,int,int);












你可能感兴趣的:(java)