保证元素唯一性 需要让元素重写两个方法 一个是 hashCode() 另一个是 equals()
HashSet在存储元素的过程中 首先会去调用元素的hashCode()值,看其哈希值与已经存入HashSet的元素的哈希值是否相同
如果不同 :就直接添加到集合
如果相同 :则继续调用元素的equals() 和哈希值相同的这些元素依次去比较
如果说有返回true的 那就重复 不添加
如果说比较结果都说false 那就是不重复 就添加
为了减少equals的比较次数提高效率 一般情况 让属性不同的对象尽量hashCode()值不同 |
|