哈希表的存储过程(存取原理)


 哈希表的存储过程(存取原理):每存入一个新的元素都要走以下五步

  (1)调用对象的hashCode()方法,获得要存储元素的哈希值。

  (2)将哈希值与表的长度(即数组的长度)进行求余运算得到一个整数值,该值就是新元素要存放的位置(即是索引值)。

  如果索引值对应的位置上没有存储任何元素,则直接将元素存储到该位置上。

  如果索引值对应的位置上已经存储了元素,则执行第3步。

  (3)遍历该位置上的所有旧元素,依次比较每个旧元素的哈希值和新元素的哈希值是否相同。

  如果有哈希值相同的旧元素,则执行第4步。

  如果没有哈希值相同的旧元素,则执行第5步。

  (4)比较新元素和旧元素的地址是否相同

  如果地址值相同则用新的元素替换老的元素。停止比较。

  如果地址值不同,则新元素调用equals方法与旧元素比较内容是否相同。

  如果返回true,用新的元素替换老的元素,停止比较。

  如果返回false,则回到第3步继续遍历下一个旧元素。

  (5)说明没有重复,则将新元素存放到该位置上并让新元素记住之前该位置的元素。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM