黑马程序员技术交流社区
标题:
TreeSet比较器Comparator和类实现Comparable类有什么区别?
[打印本页]
作者:
王贺明
时间:
2015-9-26 01:23
标题:
TreeSet比较器Comparator和类实现Comparable类有什么区别?
TreeSet比较器Comparator和类实现Comparable类有什么区别?分别什么时候用?
作者:
fmi110
时间:
2015-9-26 09:41
如果自定义类实现了Comparable接口,并且TreeSet的构造函数中也传入了比较器,那么将以比较器
的比较规则为准。
与TreeSet底层实现比较有关的底层代码
final int compare(Object k1, Object k2) {
return comparator==null ? ((Comparable<? super K>)k1).compareTo((K)k2)
: comparator.compare((K)k1, (K)k2);
}
由此可见,只有当比较器为空时,才会调用对象的自然属性进行比较。比较器是TreeSet的一个成员
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2