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