TreeSet和TreeMap有需要传入比较器的构造函数,当你在集合中传入了比较器后,就使集合本身具有了可比较性,那么你这时只要复写比较器的compare()方法即可,在使用TreeSet和TreeMap时没必要复写equals()方法。
equals()方法是在使用hashSet或hashMap时才会用到的,当把对象存入hashSet或hashMap时,都会调用hashCode()计算出这元素的hash值,如果新存入的元素与集合中的其它元素有相同的hash值的话,再来调用equals()方法比较是否是同一个对象。
|