首先为什么ArraysSort 类要实现Comparable接口,
那是因为要用到Arrays.sort(Object obj)方法,
因为sort(Object obj)方法API里明确写出数组中的所有元素都必须实现 Comparable 接口!
--------------------------------上面这段话说的对吗?如果不对下面的话就没有必要再看了----------------------------------
下面来具体看purana是怎么来实现Comparable中的compareTo方法的
public int compareTo(Object obj)
{
ArraysSort arrSort=(ArraysSort)obj;
if(intKey>arrSort.intKey) return 1;
if(intKey<arrSort.intKey) return -1;
return 0;
}
很明确,如果intKey > arrSort.intKey则返回1,但是关键在于,这个compareTo是被Arrays.sort(Object obj)方法所调用的吧?
而此时就是sort方法中的obj一定是arrSort这个对象了,那么arrSort.intKey代表要对比的intKey,那么与之相比较的intKey是哪来的呢?
--------注:在上面话中由于多次提到intKey属性,固而用颜色将其区分开,相同颜色代表同一intKey
那是因为要用到Arrays.sort(Object obj)方法,
因为sort(Object obj)方法API里明确写出数组中的所有元素都必须实现 Comparable 接口!
--------------------------------上面这段话说的对吗?如果不对下面的话就没有必要再看了----------------------------------
下面来具体看purana是怎么来实现Comparable中的compareTo方法的
public int compareTo(Object obj)
{
ArraysSort arrSort=(ArraysSort)obj;
if(intKey>arrSort.intKey) return 1;
if(intKey<arrSort.intKey) return -1;
return 0;
}
很明确,如果intKey > arrSort.intKey则返回1,但是关键在于,这个compareTo是被Arrays.sort(Object obj)方法所调用的吧?
而此时就是sort方法中的obj一定是arrSort这个对象了,那么arrSort.intKey代表要对比的intKey,那么与之相比较的intKey是哪来的呢?
--------注:在上面话中由于多次提到intKey属性,固而用颜色将其区分开,相同颜色代表同一intKey
我在说's blog http://www..cn