251 字
1 分钟
解决哈希冲突有哪些方法呢?

解决哈希冲突有哪些方法呢?#

我们到现在已经知道,HashMap 使用链表的原因为了处理哈希冲突,这种方法就是所谓的:

  • 链地址法:在冲突的位置拉一个链表,把冲突的元素放进去。

除此之外,还有一些常见的解决冲突的办法:

  • 开放定址法:开放定址法就是从冲突的位置再接着往下找,给冲突元素找个空位。找到空闲位置的方法也有很多种:
    • 线行探查法: 从冲突的位置开始,依次判断下一个位置是否空闲,直至找到空闲位置
    • 平方探查法: 从冲突的位置 x 开始,第一次增加1^2个位置,第二次增加2^2…,直至找到空闲的位置
    • ……

image.png

  • 再哈希法:换种哈希函数,重新计算冲突元素的地址。
  • 建立公共溢出区:再建一个数组,把冲突的元素放进去。
解决哈希冲突有哪些方法呢?
作者
强人自传
发布于
2025-11-05
许可协议
CC BY-NC-SA 4.0