Redian新闻
>
面试官:Hash 碰撞是什么?如何解决?被问懵了……

面试官:Hash 碰撞是什么?如何解决?被问懵了……

公众号新闻

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 
来源:blog.csdn.net/zsyoung/
article/details/114505480

Hash如何存数据

hash表的本质其实就是数组,hash表中通常存放的是键值对Entry。

如下图:

这里的学号是个key,哈希表就是根据key值来通过哈希函数计算得到一个值,这个值就是下标值,用来确定这个Entry要存放在哈希表中哪个位置。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

Hash碰撞

hash碰撞指的是,两个不同的值(比如张三、李四的学号)经过hash计算后,得到的hash值相同,后来的李四要放到原来的张三的位置,但是数组的位置已经被张三占了,导致冲突。

解决方法

hash碰撞的解决方式是开放寻址法和拉链法。

开放寻址法指的是,当前数组位置1被占用了,就放到下一个位置2上去,如果2也被占用了,就继续往下找,直到找到空位置。

拉链法采用的是链表的方式,这个时候位置1就不单单存放的是Entry了,此时的Entry还要额外保存一个next指针,指向数组外的另一个位置,将李四安排在这里,张三那个Entry中的next指针就指向李四的这个位置,也就是保存的这个位置的内存地址。

如果还有冲突,就把又冲突的那个Entry放到一个新位置上,然后李四的Entry指向它,这样就形成一个链表。

总结起来:开放寻址法和拉链法都是想办法找到下一个空位置来存发生冲突的值。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
面试官:为什么不建议在 MySQL 中使用 UTF-8 ?程序员面试反问面试官15道题,网友:到底谁在面试?单身的我性欲如何解决?看看我回答背后的逻辑和思维力量面试官:断网了,还能 ping 通 127.0.0.1 吗?分享一道我之前遇到的面试题,面试官说答不出来正常面试官:select......for update 会锁表还是锁行?我拴 Q 了!!2022留学生出国几乎必得新冠,症状如何?如何治疗?如何预防?面试官:你这数据库表设计的,真垃圾。。。加国RBC面试官:请推荐一本最近读过的书《部队大院的八零后》7. 只卖艺,不卖身焦虑、无力、不确定性……古人如何解决精神内耗?面试官:MySQL中的 distinct 和 group by 哪个效率更高?面试时注意这些细节问题,面试官对你好感度暴增!hǎo xiǎng “rua” 🤩面试官:如何优化你的程序?Mock回顾 | Roblox面试官在线解析面试考点!毕业二十多年后重逢,她问单身的我,性欲如何解决?我这么回答......大摩面试官让我当场写CIM,还必须用LBO模型!我慌了…BQ解析 | Amazon面试官最爱问的问题是……闲话人生(206)老关庙小学和首义路小学面试官问:和上司意见不一致,你如何解决?面试官:百万数据的导入导出解决方案,怎么设计?明日开讲 | 大厂在职面试官,破译低迷市场下的面试难点!面试数百人后,与你分享我作为面试官的内心独白厕哢佗洛基,试释屎诗事人民日报五问西宁市有关部门:为什么买菜难买菜贵,如何解决知识脱口秀:中国第一位尝到巧克力的皇帝是谁?八谷之冠指的是什么?人体最大的器官是什么?马上直播 | 大厂在职面试官,破译低迷市场下的面试难点!女副教授的浅浅诗面试官:对不起,你的个人成长性与B端岗位不匹配老海归和白卷英雄性需求不匹配,如何简单又不伤感情地解决?面试官:电商库存扣减如何设计?如何防止超卖?皱纹、暗黄、干燥……显老十岁的颜值杀器如何解决?面试官:谈谈过滤器和拦截器的区别?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。