怎样才能判断TreeSet里add方法添加重复元素时是equals起作用还是compareTo的起的作用?

解决方案 »

  1.   

    这个你只要看它返还的是什么就知道了,equals返还的是ture,false.
    compareTo返还的是0,1,-1.
      

  2.   

    TreeSet靠的是compareTo。因为它是有序的,它就是靠有序性实现快速查找。
      

  3.   

    同意ls,equals只能判断是否相等,compareTo可以判断大小,用来排序
      

  4.   

    当然是compareTo啦!~又可用于引用类型的比较,还可自定义排序规则……
    equals太局限了……
      

  5.   

    要是不信的话,楼主可以自己写一个类,重写它的equals和compareTo方法,并在equals方法中使用System.println打印一行“equals”,在compareTo方法中打印一行“compareTo”,然后把这个类的对象往一个TreeSet对象中add,执行一下看看结果便知。
      

  6.   

    这是因为Set 接口根据equals 操作进行定义,但TreeSet 实例将使用其compareTo(或compare)方法执行所有的键比较
      

  7.   


    看来源代码学习已经不时兴了呀
    不过steedhorse的说法不错,继承重写确实不错。小心重写时的参数肯定是Object 的。这两个方法肯定不是final的,其他时候要注意。