- 如果自定义类实现了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的一个成员
复制代码 |