java比较器,comparator的比较方式

Summer_Tiger 2008-12-13 11:18:53
comparator中的compare(object o1,object o2)方法的排序原理是什么?它在比较时返回的是1,-1,0。若这样的排序它是按什么顺序:
public int compare(object o1,object o2){

return o1>o2? 1:(o1==o2)?0:-1
很混乱,谢谢帮忙
...全文
532 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaitao81 2008-12-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liao82 的回复:]
在使用Collections排序的时候,可以传入一个实现了Comparator接口的比较器

也是就是说你的对象会按照这个比较器来进行排序。

Collections.sort(list, new MyComparator());
[/Quote]
这才经典
Testing 2008-12-17
  • 打赏
  • 举报
回复
吸收
guogaocheng 2008-12-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhangmagle 的帖子:]
comparator中的compare(object o1,object o2)方法的排序原理是什么?它在比较时返回的是1,-1,0。若这样的排序它是按什么顺序:
public int compare(object o1,object o2){

return o1>o2? 1:(o1==o2)?0:-1
很混乱,谢谢帮忙
[/Quote]

//其实就是告诉JVM object1和Object2这两个对象的比较方式。返回int类型
1 表示object1>object2
0 表示object1==object2
-1表示object1<objcet2
Monkey_D_Luffy 2008-12-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ChDw 的回复:]
Comprator不负责排序的,它只是告诉排序程序两个对象之间的大小。至于如何排序是由排序器(如Collections、TreeMap)来负责


Compartor如果返回小于0,则排序器认为o1 <02;如果等于0则认为o1==o2,如果大于0则认为o1 > o2
[/Quote]
comparator的实现的就是这个功能
amo_njupt 2008-12-14
  • 打赏
  • 举报
回复
学习
[Quote=引用 2 楼 ChDw 的回复:]
Comprator不负责排序的,它只是告诉排序程序两个对象之间的大小。至于如何排序是由排序器(如Collections、TreeMap)来负责


Compartor如果返回小于0,则排序器认为o1 <02;如果等于0则认为o1==o2,如果大于0则认为o1 > o2
[/Quote]
liao82 2008-12-13
  • 打赏
  • 举报
回复
在使用Collections排序的时候,可以传入一个实现了Comparator接口的比较器

也是就是说你的对象会按照这个比较器来进行排序。

Collections.sort(list, new MyComparator());
RJCHEN1985 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ChDw 的回复:]
Comprator不负责排序的,它只是告诉排序程序两个对象之间的大小。至于如何排序是由排序器(如Collections、TreeMap)来负责


Compartor如果返回小于0,则排序器认为o1 <02;如果等于0则认为o1==o2,如果大于0则认为o1 > o2
[/Quote]
正解

ChDw 2008-12-13
  • 打赏
  • 举报
回复
Comprator不负责排序的,它只是告诉排序程序两个对象之间的大小。至于如何排序是由排序器(如Collections、TreeMap)来负责


Compartor如果返回小于0,则排序器认为o1<02;如果等于0则认为o1==o2,如果大于0则认为o1 > o2
ty_fzpb 2008-12-13
  • 打赏
  • 举报
回复
compare()方法的结果与对象的equals方法结果一致!
possibleonline 2008-12-13
  • 打赏
  • 举报
回复
comparator实现客户化排序,如TreeMap(Comparator<? super K> c)
TreeSet(Comparator<? super E> c)
BriskJJ 2008-12-13
  • 打赏
  • 举报
回复
up
kingdomfly 2008-12-13
  • 打赏
  • 举报
回复
你是不是没用过JDK帮助文档啊,建议下个.相当相当有用的!
恋空 2008-12-13
  • 打赏
  • 举报
回复
up
Insmiles 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ChDw 的回复:]
Comprator不负责排序的,它只是告诉排序程序两个对象之间的大小。至于如何排序是由排序器(如Collections、TreeMap)来负责


Compartor如果返回小于0,则排序器认为o1 <02;如果等于0则认为o1==o2,如果大于0则认为o1 > o2
[/Quote]

up下

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧