黑马程序员技术交流社区
标题:
Comparator和Comprarable疑惑!
[打印本页]
作者:
wuchuang1992
时间:
2013-11-1 11:13
标题:
Comparator和Comprarable疑惑!
请大牛给我说说Comparator和Comprarable两种方法实现排序?他们啥关系?
请写个简单的实例,谢谢!
作者:
ciowok
时间:
2013-11-1 11:43
Comprarable:表示可以比较的,实现这个接口表示:这个类的实例可以比较大小,可以进行自然排序。
Comparator:比较工具,用于临时定义比较规则,不是默认的比较规则。
作者:
杨增坤
时间:
2013-11-1 11:55
Comparator和Comprarable:
如果一个类的对象需要比较,存储到Set集合中,那么本身必须具备比较性,那么此类必须实现Comprarable接口,重写其方法。然后在重写方法中也出自己的比较规则。
但是当一个类实现了Comprarable接口,那么比较规则就确定了,,在更改就需要更改源代码,但是这是比较麻烦的,
那么怎样去更改原来类耳朵比较规则呢,那么就自定义比较器Comparator,自自定义类,实现Comparator接口,重写其方法,然后把比较器传给Set集合,然集合具备排序规则。
这样就更方便。
希望对你有帮助!
作者:
joechen
时间:
2013-11-1 12:18
Comprarable和Comparator都是接口
Comprarable接口中的方法是 compareTo(T o) 比较此对象与指定对象的顺序 ,即用法是 对象1. compareTo(对象2),自己设计的类要实现 Comprarable接口,复写 Comprarable接口 中的比较方法,其返回值是int (负数,0,正数)
Comparator接口中的比较方法是int compare(T o1, T o2) 比较用来排序的两个参数,使用方法是compare(对象1,对象2) 返回值是int(负数,0,正数)想建立自己特有的比较方式也需要实现Comparator接口 复写compare()方法
两者的不同是在comparator可以传入新建的集合TreeSet(comparator),那么TreeSet集合可以根据指定比较器进行排序
作者:
黄炳期
时间:
2013-11-1 12:45
如果问题已经解决,请重新编辑帖子为“提问结束”
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2