A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© cyc523633157 中级黑马   /  2014-8-2 15:42  /  908 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 cyc523633157 于 2014-8-2 22:01 编辑

这两个比较器搞不明白。

6 个回复

倒序浏览
前者是自已完成比较,后者是外部程序实现比较。
回复 使用道具 举报
当你往一个集合中加入元素时,这个元素本身不具备比较性,那么你怎么才能在你对这个集合进行遍历时获得你想要的查询结果呢?
       此时,两种办法,第一种,让你的这个元素所对应的类实现comparable接口,重写compareTo方法,按照你的方法去确定比较元素的规则。
       第二种,定义一个比较器,实现comparator接口,同时也重写compareTo方法,定义你自己的比较规则,然后在你定义集合对象的时候,使用集合的带参构造函数,将这个构造器传入这个集合,这个集合中的元素就会按照你定义的比较器进行比较了。
       这就是两个接口的区别。作用其实都是一样,是元素具有比较性。

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 赞一个!

查看全部评分

回复 使用道具 举报
怀念黑海岸 发表于 2014-8-2 18:30
当你往一个集合中加入元素时,这个元素本身不具备比较性,那么你怎么才能在你对这个集合进行遍历时获得你想 ...

真棒、、、、、、、、、、、、、、、、
回复 使用道具 举报
comparable是在定义类的时候 实现这个接口,即这个类具有了比较性。而后面的comparator纯粹是比较器。
回复 使用道具 举报
cyc523633157 发表于 2014-8-2 20:41
真棒、、、、、、、、、、、、、、、、

可惜我写了那么多哦,连个沙发都没抢到,只抢到个地板。
回复 使用道具 举报
这俩一个是提供可比性,一个是创建一个比较器。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马