请问调用sort方法的时候,comparator实现类的传入实现类名作用

请问调用sort方法的时候,comparator实现类的传入实现类名作用

既然不传入也可以进行排序(调用comparable),为什么要传入实现类使用(comparator),或者说,这里两种方法的重载,都可以进行排序,为什么要有不同

正在回答

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

1回答

两种实现方法各有其优缺点:

 Comparable 优点是:

用Comparable 比较简单, 只要实现Comparable 接口的对象直接就成为一个可以比较的对象,

Comparable 缺点是:需要修改源代码。

 Comparator 的优点是:

不需要修改源代码, 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了。

可以根据业务需求,选择适合对应代码的接口即可。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 慕移动8576453 提问者 #1
    comparable怎么需要修改源代码了,视频里没有讲到啊,还有我的问题是在使用comparator的时候传入的new对象用到哪里去了
    2018-11-05 15:16:02
  • 慕移动8576453 提问者 #2
    视频里只是讲到两个接口的实现啊
    2018-11-05 15:17:39
  • 好帮手慕阿莹 回复 提问者 慕移动8576453 #3
    这里的修改源码是指的修改实现这个方法的类,例如Goods类,如果我们想让它升序,就要去改Goods类中的compareTo方法。如果一个业务中有时需要升序,有时需要降序怎么办呢?这时候就可以用Comparator 了。写两个比较器,需要升序的时候,就用升序的比较器,同理,降序则用降序的比较器,就不用去改Goods的代码了。 如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2018-11-05 15:40:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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