import java.util.Arrays;
class Point implements Comparable{
int i ,s;
Point(int i,int s){
this.i = i;
this.s = s;
}
public int compareTo(Object o){ //在这里,下面的程序似乎并没有调用这个方法,但是这个方法还是被调用了,为什么?
Point p =(Point)o;
int index=i>p.i?1:(i==p.i?0:-1);
if(index==0){
index=s>p.s?1:(s==p.s?0:-1);
}
return index;
}
public String toString(){
return i+" "+s;
}
}
class Shiyan{
public static void main(String [] args){
Point []arr = new Point[]{new Point(1,2),
new Point(3,4),
new Point(3,5),
new Point(2,2)};
Arrays.sort(arr);
for(int num=0;num<arr.length;num++){
System.out.println(arr[num]);
}
}
}
class Point implements Comparable{
int i ,s;
Point(int i,int s){
this.i = i;
this.s = s;
}
public int compareTo(Object o){ //在这里,下面的程序似乎并没有调用这个方法,但是这个方法还是被调用了,为什么?
Point p =(Point)o;
int index=i>p.i?1:(i==p.i?0:-1);
if(index==0){
index=s>p.s?1:(s==p.s?0:-1);
}
return index;
}
public String toString(){
return i+" "+s;
}
}
class Shiyan{
public static void main(String [] args){
Point []arr = new Point[]{new Point(1,2),
new Point(3,4),
new Point(3,5),
new Point(2,2)};
Arrays.sort(arr);
for(int num=0;num<arr.length;num++){
System.out.println(arr[num]);
}
}
}
楼主【shanber】截止到2008-07-25 20:56:08的历史汇总数据(不包括此帖):
发帖的总数量:6 发帖的总分数:20 每贴平均分数:3
回帖的总数量:9 得分贴总数量:3 回帖的得分率:33%
结贴的总数量:4 结贴的总分数:0
无满意结贴数:4 无满意结贴分:80
未结的帖子数:2 未结的总分数:20
结贴的百分比:66.67 % 结分的百分比:0.00 %
无满意结贴率:100.00% 无满意结分率:---------------------
楼主加油
排序的时候当然会比较了.
会调用的
只不过一个用于数组
一个用语集合罢了
关于 interface comparator 的实现方法签名
public int compare(Object obj,Object obj);
Object[] aux = (Object[])a.clone();
mergeSort(aux, a, 0, a.length, 0);
}
上面是Arrays.sort的源码,mergeSort方法里会调用a数组对象里的compareTo方法排序: // Insertion sort on smallest arrays
if (length < INSERTIONSORT_THRESHOLD) {
for (int i=low; i<high; i++)
for (int j=i; j>low &&
((Comparable) dest[j-1]).compareTo(dest[j])>0; j--)
swap(dest, j, j-1);
return;
}