黑马程序员技术交流社区

标题: comparable和comparator这两个接口有什么区别?谢谢。。。 [打印本页]

作者: 千年一梦    时间: 2015-2-24 10:31
标题: comparable和comparator这两个接口有什么区别?谢谢。。。
comparable和comparator这两个接口有什么区别?谢谢。。。
作者: 万合天宜    时间: 2015-2-24 11:20
Comparable 是给要排序的实体本身实现的接口,而 Comparator 则是第三方。

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2