Collections.sort給對象進行排序:
他有多個重載函數,主要介紹下
Collections.sort(list,
Comparator)比較對象:
重寫Comparator中compare方法:
public class DistanceComparator implements Comparator<Shop> {
double xAxis; //要比較的緯度
double yAxis; //要比較的經度
public DistanceComparator(double xAxis, double yAxis) {
this.xAxis = xAxis;
this.yAxis = yAxis;
}
@Override
public int compare(Shop o1, Shop o2) {
double d1 = MapDistance.distance(yAxis, xAxis, o1.getyAxis(), o1.getxAxis());
double d2 = MapDistance.distance(yAxis, xAxis, o2.getyAxis(), o2.getxAxis());
if (d1 > d2) {
return 1;
} else if (d1 < d2) {
return -1;
} else {
return 0;
}
}
}
解釋:如果對象1大于對象2 則傳回正數1;如果小于則傳回負數-1;相等則為0 這樣是把對象按升序排列 否則按降序排列。