面试真题

其他 · 简单 · 百度

Map为什么有哈希冲突,如何解决哈希冲突?

简单 其他 🎤 百度
参考答案
结论:哈希冲突因哈希函数将任意键映射到有限桶导致碰撞,不可避免。解决方法主要有:1.链地址法(拉链法):同桶键组成链表/树,如Go map、Java HashMap;2.开放寻址法:冲突后按探测序列找空位,如Python dict用开放寻址;3.再哈希法:换函数重算;4.公共溢出区。原理:链地址法在桶后挂节点,查找遍历;开放寻址法线性/二次探测,删除需标记。对比:链地址法简单且防聚集,开放寻址缓存友好。示例:Go map每个桶存8键值,溢出则链溢出桶。
题目整理自公开面经,答案由校招宝自研生成,仅供参考