| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1555 人关注过本帖
标题:[求助]对文件内容排序的问题
只看楼主 加入收藏
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
compareTo用来和同类的不同对象的比较
至于怎么来判别是不是相同对象就是你自己实现的了

win32汇编
病毒 加密
目前兴趣所在
2007-02-11 13:40
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
以下是引用无理取闹在2007-2-11 13:40:55的发言:
compareTo用来和同类的不同对象的比较
至于怎么来判别是不是相同对象就是你自己实现的了

你还是没有解释我所问的最关键的问题


我在说's blog   http://www..cn
2007-02-11 13:43
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
因为你的要求是对#后面的分数进行排序,所以就在compareTo的实现中只比较后面的数字来排序
就像purana程序实现的一样

win32汇编
病毒 加密
目前兴趣所在
2007-02-11 13:45
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
最不明白的就是如何来实现 public int compareTo(Object obj) 方法,

1 其中更不解的是这一句 intKey > arrSort.intKey

intKey是这个类的一个变量按说如果和arrSort.inKey比较,其中的intKey应该是不同的吧?

可是哪里可以看出intKey 和arrSort.intKey代表的是不同的intKey呢?



一共1个问题

[此贴子已经被作者于2007-2-11 13:49:39编辑过]


我在说's blog   http://www..cn
2007-02-11 13:46
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
再具体些这句if(intKey>arrSort.intKey) return 1; 代表什么意思?

分别intKey代表什么?arrSort.intKey代表什么?

我在说's blog   http://www..cn
2007-02-11 13:48
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 

一 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 - 如果指定对象的类型不允许它与此对象进行比较。


win32汇编
病毒 加密
目前兴趣所在
2007-02-11 13:50
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
Arrays.sort(sorts);
sorts是一个数组,它怎么知道你给出的 intKey是哪一个 而arrSort.intKey是另一个和当前对象比较的那个对象的属性

我在说's blog   http://www..cn
2007-02-11 14:00
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
在Arrays.sort里面就没有我所说的当前之说了 就是在这个对象数组中利用compareTo这个方法排序数组
就像自己写排序一样 什么冒泡之类的
哪个属性属于哪个类 这个问题问的 我有点不知道怎么答了
arrSort.intKey就是就是arrSort这个对象的啊 这个就是知道的啊
你再去看看Arrays.sort的api 也许就会理解了

win32汇编
病毒 加密
目前兴趣所在
2007-02-11 14:06
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

你不知道怎么回答了,我其实也不知道该怎么来问清楚我想要问的问题,挺让我糊涂的这问题,谢谢你,我再看下API


我在说's blog   http://www..cn
2007-02-11 14:08
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
Arrays.sort这个方法就是省去我们自己排序的实现,
但是排序的规则却要我们实现 也就是compareTo这个方法
如果你不能理解sort 可以试着将排序的部分自己实现一下
像这样obj.compareTo(obj2);来实现排序
把它当成int一样的简单类型 来比较
这样也许能体会Arrays.sort

win32汇编
病毒 加密
目前兴趣所在
2007-02-11 14:13
快速回复:[求助]对文件内容排序的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022301 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved