1. 在HashSet中的元素、 HashMap Hashtable中的key 判断相等的标准是 hashcode和equals。
2. 在TreeSet 和TreeMap的key中判断相等的标准是compareTo返回true。
3. 其他大多数时候判断的标准是equals返回true。
map的key和set中应该存放不可变对象,否则会出现无法定位或者出现与约定不符的情况,例如在set中出现两个相等的对象。
另外在TreeSet 和TreeMap中为了保证map的treeSet/Map规定的一致性,应该在compareTo和equals方法保持一致性,compareTo返回0,equals返回true。
看似很复杂,其实只要注意一点就可以了:
上面这些地方只用不可变对象,而且他们的hashcode equals compareTo 三者保持一致性。