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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

TreeSet比较器Comparator和类实现Comparable类有什么区别?分别什么时候用?

1 个回复

正序浏览
  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的一个成员
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马