1、
List<CabinetDistanceSort> cabinetDistanceSortList = new ArrayList<>();
LngLat start = new LngLat(longitude, latitude);
cabinetList.forEach((cabinet) -> {
CabinetDistanceSort cabinetDistanceSort = new CabinetDistanceSort();
LngLat end = new LngLat(cabinet.getLongitude(),cabinet.getLatitude());
Double distance = AMapUtils.calculateLineDistance(start,end);
cabinetDistanceSort.setCabinet(cabinet);
cabinetDistanceSort.setDistance(distance);
cabinetDistanceSortList.add(cabinetDistanceSort);
});
//这里采用的试用Comparator构造器实现正向排序,要是倒叙排序写成o2.distance - o1.distance
cabinetDistanceSortList.sort(new Comparator<CabinetDistanceSort>() {
@Override
public int compare(CabinetDistanceSort o1, CabinetDistanceSort o2) {
return (int) (o1.distance - o2.distance);
}
});
2、
//这里采用的是compareTo方法,这里也是正向排序
List<Address> addressList = addressService.search(searchArgs);
Collections.sort(addressList,(a,b) -> a.getIsDefault().compareTo(b.getIsDefault()));