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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

comparable和comparator这两个接口有什么区别?谢谢。。。

2 个回复

倒序浏览
Comparable 是给要排序的实体本身实现的接口,而 Comparator 则是第三方。

比如:类 A 实现了 Comparable 接口,表示它可以和另一个 A 比较来达到排序的目的。
但,假设用户想点击按钮“按名字排序”,之后他又想“按QQ号排序”,这样的需求我们用 Comparable 是无法同时满足两种情况的,那么我们就需要第三方 Comparator,当我们在使用 Collections.sort() 方法时传递这个 Comparator 让它来排序。因此 Comparable 里面的方法只需要 1 个参数,因为另一个参数就是这个 A 类实例自己,而 Comparator 需要 2 个参数,它是第三方比较器,接收 2 个参数。
回复 使用道具 举报
Comparable接口可以让集合要存储的元素自身具备比较性。
Comparator接口的实例是第三方比较器,需要将其作为参数传递给TreeSet集合的构造函数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马