TreeSet比较器OR comparble.compareTo()优先级

时间:2011-10-18 19:58:09

标签: java treeset

如果使用比较器设置Java TreeSet来处理对象排序逻辑但是对象(类)也实现了可比较的并且在其上实现了有效的compareTo方法。

哪一个优先?比较器内的逻辑或compareTo方法中的逻辑?

非常感谢。

2 个答案:

答案 0 :(得分:5)

传递给TreeSet构造函数的Comparator优先。这允许使用与对象compareTo实现的不同的比较算法。如果不是这样,你就永远无法使用与TreeSet不同的比较算法。

答案 1 :(得分:4)

这清楚地说明in the Javadocs(强调补充):

  

public TreeSet(Comparator<? super E> comparator)
  构造一个新的空树集,根据指定的比较器排序。 ...

     

参数:
  comparator - 将用于订购此集合的比较器。