javajdk自带排序方法,1参传入list,2参传入自带Comparator<T>泛型类,*10是因为我要做double排序我下面有些转换double保留一位小数点,
//根据最近距离排序 Collections.sort(storeList,new Comparator<Store>(){ @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<storeList.size();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);