Hashset的方法首先會使用當前集合中的每一個元素和新添加的元素進行hash值比較
如果hash值不一樣,則直接添加新的元素
如果hash值一樣,比較地址值或者使用equals方法進行比較
所有的比較結果都不一樣則添加
唯一性原理:
規則:新添加到HashSet集合的元素都會與集合中已有的元素一一比較
首先比較哈希值(每個元素都會調用hashCode()產生一個哈希值)
如果新添加的元素與集合中已有的元素的哈希值都不同,新添加的元素存入集合
如果新添加的元素與集合中已有的某個元素哈希值相同,此時還需要調用equals(Object obj)比較
如果equals(Object obj)方法返回true,說明新添加的元素與集合中已有的某個元素的屬性值相同,那么新添加的元素不存入集合
如果equals(Object obj)方法返回false, 說明新添加的元素與集合中已有的元素的屬性值都不同, 那么新添加的元素存入集合