至于怎么来判别是不是相同对象就是你自己实现的了
----------------解决方案--------------------------------------------------------
compareTo用来和同类的不同对象的比较
至于怎么来判别是不是相同对象就是你自己实现的了
你还是没有解释我所问的最关键的问题
----------------解决方案--------------------------------------------------------
因为你的要求是对#后面的分数进行排序,所以就在compareTo的实现中只比较后面的数字来排序
就像purana程序实现的一样
----------------解决方案--------------------------------------------------------
1 其中更不解的是这一句 intKey > arrSort.intKey
intKey是这个类的一个变量按说如果和arrSort.inKey比较,其中的intKey应该是不同的吧?
可是哪里可以看出intKey 和arrSort.intKey代表的是不同的intKey呢?
一共1个问题
[此贴子已经被作者于2007-2-11 13:49:39编辑过]
----------------解决方案--------------------------------------------------------
再具体些这句if(intKey>arrSort.intKey) return 1; 代表什么意思?
分别intKey代表什么?arrSort.intKey代表什么?
----------------解决方案--------------------------------------------------------
一 intKey可能相同也可能不同 这个是你给出的 intKey是当前这个对象的属性 而arrSort.intKey是另一个和当前对象比较的那个对象的属性
二 下摘自api
compareTo
int compareTo(T o)比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
在前面的描述中,符号 sgn(expression) 表示数学上的 signum 函数,该函数根据 expression 的值是负数、零还是正数,分别返回 -1、0 或 1。 实现类必须确保对于所有的 x 和 y,都存在 sgn(x.compareTo(y)) == -sgn(y.compareTo(x))。(这意味着如果 y.compareTo(x) 抛出一个异常,则 x.compareTo(y) 也要抛出一个异常。)
实现类还必须确保关系是可传递的:(x.compareTo(y)>0 && y.compareTo(z)>0) 意味着 x.compareTo(z)>0。
最后,实现程序必须确保 x.compareTo(y)==0 意味着对于所有的 z,都存在 sgn(x.compareTo(z)) == sgn(y.compareTo(z))。
强烈推荐 (x.compareTo(y)==0) == (x.equals(y)) 这种做法,但不是 严格要求这样做。一般来说,任何实现 Comparable 接口和违背此条件的类都应该清楚地指出这一事实。推荐如此阐述:“注意:此类具有与 equals 不一致的自然排序。”
参数:
o - 要比较的对象。
返回:
负整数、零或正整数,根据此对象是小于、等于还是大于指定对象。
抛出:
ClassCastException - 如果指定对象的类型不允许它与此对象进行比较。
----------------解决方案--------------------------------------------------------
Arrays.sort(sorts);
sorts是一个数组,它怎么知道你给出的 intKey是哪一个 而arrSort.intKey是另一个和当前对象比较的那个对象的属性
----------------解决方案--------------------------------------------------------
在Arrays.sort里面就没有我所说的当前之说了 就是在这个对象数组中利用compareTo这个方法排序数组
就像自己写排序一样 什么冒泡之类的
哪个属性属于哪个类 这个问题问的 我有点不知道怎么答了
arrSort.intKey就是就是arrSort这个对象的啊 这个就是知道的啊
你再去看看Arrays.sort的api 也许就会理解了
----------------解决方案--------------------------------------------------------
你不知道怎么回答了,我其实也不知道该怎么来问清楚我想要问的问题,挺让我糊涂的这问题,谢谢你,我再看下API
----------------解决方案--------------------------------------------------------
Arrays.sort这个方法就是省去我们自己排序的实现,
但是排序的规则却要我们实现 也就是compareTo这个方法
如果你不能理解sort 可以试着将排序的部分自己实现一下
像这样obj.compareTo(obj2);来实现排序
把它当成int一样的简单类型 来比较
这样也许能体会Arrays.sort
----------------解决方案--------------------------------------------------------