黑马程序员技术交流社区

标题: TreeSet比较器Comparator和类实现Comparable类有什么区别? [打印本页]

作者: 王贺明    时间: 2015-9-26 01:23
标题: TreeSet比较器Comparator和类实现Comparable类有什么区别?
TreeSet比较器Comparator和类实现Comparable类有什么区别?分别什么时候用?
作者: fmi110    时间: 2015-9-26 09:41
  1. 如果自定义类实现了Comparable接口,并且TreeSet的构造函数中也传入了比较器,那么将以比较器  
  2.     的比较规则为准。  
  3.   
  4.     与TreeSet底层实现比较有关的底层代码  
  5.   
  6.     final int compare(Object k1, Object k2) {  
  7.         return comparator==null ? ((Comparable<? super K>)k1).compareTo((K)k2)  
  8.             : comparator.compare((K)k1, (K)k2);  
  9.     }  
  10.     由此可见,只有当比较器为空时,才会调用对象的自然属性进行比较。比较器是TreeSet的一个成员
复制代码





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