解决 hash 冲突的办法有哪些?HashMap 用的哪种?

解决 hash 冲突的办法有哪些?HashMap 用的哪种?
解决Hash冲突方法有:开放定址法、再哈希法、链地址法(拉链法)、建立公共溢出区。HashMap中采用的是拉链法

  1. 开放定址法:
    ● 开放定址法也称为再散列法,基本思想就是,如果p = H(key)出现冲突时,则以p为基础,再次hash,p1 = H§,直到找到一个不冲突的哈希地址。 因此开放定址法所需要的hash表的长度要大于等于所需要存放的元素,而且因为存在再次hash,所以只能在删除的节点上做标记,而不能真正删除节点。
  2. 再哈希法:
    ● 再哈希法(双重散列,多重散列),提供多个不同的hash函数,当R1 = H1(key1)发生冲突时,再计算R2 =H2(key1),直到没有冲突为止。 这样做虽然不易产生堆集,但增加了计算的时间。
  3. 链地址法(拉链法):
    ● 在冲突的位置拉一个链表,把冲突的元素放进去。链地址法适用于经常进行插入和删除的情况。
  4. 建立公共溢出区:
    ● 再建一个数组,把冲突的元素放进去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一切随缘~~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值