Java中---HashSet中的Set()方法不能加重復值的原因,唯一性


Hashset的方法首先會使用當前集合中的每一個元素和新添加的元素進行hash值比較
      如果hash值不一樣,則直接添加新的元素
      如果hash值一樣,比較地址值或者使用equals方法進行比較
      所有的比較結果都不一樣則添加

唯一性原理:

 規則:新添加到HashSet集合的元素都會與集合中已有的元素一一比較

        首先比較哈希值(每個元素都會調用hashCode()產生一個哈希值)

             如果新添加的元素與集合中已有的元素的哈希值都不同,新添加的元素存入集合

             如果新添加的元素與集合中已有的某個元素哈希值相同,此時還需要調用equals(Object obj)比較

                   如果equals(Object obj)方法返回true,說明新添加的元素與集合中已有的某個元素的屬性值相同,那么新添加的元素不存入集合

                   如果equals(Object obj)方法返回false, 說明新添加的元素與集合中已有的元素的屬性值都不同, 那么新添加的元素存入集合


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM