解决Hash冲突的几种方法

  • Post author:
  • Post category:其他




开放地址法:






1.线性探测法:ThreadLocalMap
线性再散列法是形式最简单的处理冲突的方法。插入元素时,如果发生冲突,算法会简单的

从该槽位置向后循环遍历hash表,直到找到表中的下一个空槽,并将该元素放入该槽中

(会导致相同hash值的元素挨在一起和其他hash值对应的槽被占用)


。查找元素时,首先散列值所指向的槽,如果没有找到匹配,则继续


从该槽


遍历hash表,直到:(1)找到相应的元素;(2)找到一个空槽,指示查找的元素不存在,

(所以不能随便删除元素)

;(3)整个hash表遍历完毕(指示该元素不存在并且hash表是满的)
用线性探测法处理冲突,思路清晰,算法简单,但存在下列缺



版权声明:本文为u012104435原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。