Comparator和Comparable的区别

Comparator和Comparable的区别

http://img1.sycdn.imooc.com//climg/5f393d3d091ae94708210932.jpg

http://img1.sycdn.imooc.com//climg/5f393d3d09a441de07280830.jpg

根据其他同学笔记中的场景+其他同学提问中,老师的第三条回答=不太理解这个比较器和可比化的区别

1、能不能举个例子,为什么Comparable只有一种比较规则?

2、Comparator怎么实现多个,返回值不是都只有一个吗?而且Comparator和Comparable不都是重写了方法吗,同一个实现类中不是不能有同名同参的重写方法吗

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1. Comparable接口用于在类内部定义比较规则,一个类只能定义一个。所以Comparable只有一种比较规则。如下:

public int compareTo(Dog o)

而Comparator接口在类外部定义比较规则,可以定义多个比较规则使用。如下:

public int compare(Dog o1, Dog o2)

2. 实现多个Comparator,同学可以创建多个实现类。并在一个实现类中无法实现多个排序接口,所以就不会出现方法冲突的情况。

祝学习愉快!

  • 孫瑪戈 提问者 #1
    哦哦,是不是所谓的比较规则就是指是指传入参数的可比性,所以Comparator会多一些啊
    2020-08-17 11:20:47
  • 好帮手慕小尤 回复 提问者 孫瑪戈 #2
    同学你好,同学这样理解也是可以的。祝学习愉快!
    2020-08-17 14:19:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师