JAVA中,为什么说使用比较器Comparator比 实现Comparable接口要灵活一些?什么样对象不支持自比较?

如果能举一个简单的例子就好了,例子不用太详细,只要能说明灵活在哪就行了,我只是纠结于灵活这一点。谢谢!... 如果能举一个简单的例子就好了,例子不用太详细,只要能说明灵活在哪就行了,我只是纠结于灵活这一点。谢谢! 展开
 我来答
匿名用户
推荐于2017-09-07
展开全部
comparable 和 Comparator 都是用来实现集合中的排序的
只是Comparable是在集合内部定义的方法实现的排序
Comparator是在集合外部实现的排序

所以,如想实现排序,就需要在集合外定义Comparator接口的方法compare()或在集合内实现Comparable接口的方法compareTo()

Comparable是一个对象本身就已经支持自比较所需要实现的接口(如String Integer自己就可以完成比较大小操作)

而Comparator是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。

实现这个接口comparable里的函数compareTo,可以自定义比较的方法,就是想怎么比较;
但是comparator是一个比较器,可以实现很多的比较器,比如说要比较一头猪,你可以实现一个按照重要比较的比较器,也可以实现一个按照别的东西比较的比较器,如果你要按照不同方式比较的话,可以让那个猪实现comparable接口,然后再compareTo函数里调用不同的比较器
不知道说明白的没有
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式