那两个的hashCode的哈希值不相同当存储自定义对象的时候,如果没有重写hashCode()方法,那么就会调用Object类的hashCode(),得到当前对象的地址,地址不同就不能去重复.
当存储对象的时候,先调用对象的hashCode()方法计算一个哈希值,然后在集合中查找是否有哈希值相同的对象,如果没有哈希值相同的对象,那么直接存入,如果有哈希值相同的对象,调用equals()方法比较,比较结果为true就不存,比较结果为fals则存入,如果希望将属性相同的对象去重复,那么属性相同的对象要返回相同的哈希值. |