天天看點

Collections.sort給對象排序

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  這樣是把對象按升序排列 否則按降序排列。