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 这样是把对象按升序排列
否则按降序排列。