问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

hashmap会问到数组索引,hash碰撞怎么解决

发布网友 发布时间:2022-05-01 15:17

我来回答

2个回答

热心网友 时间:2022-04-26 19:17

Java中HashMap是利用“拉链法”处理HashCode的碰撞问题。在调用HashMap的put方法或get方法时,都会首先调用hashcode方法,去查找相关的key,当有冲突时,再调用equals方法。hashMap基于hasing原理,我们通过put和get方法存取对象。当我们将键值对传递给put方法时,他调用键对象的hashCode()方法来计算hashCode,然后找到bucket(哈希桶)位置来存储对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当碰撞发生了,对象将会存储在链表的下一个节点中。hashMap在每个链表节点存储键值对对象。当两个不同的键却有相同的hashCode时,他们会存储在同一个bucket位置的链表中。键对象的equals()来找到键值对。

热心网友 时间:2022-04-26 20:35

1.开放地址法
开放地执法有一个公式:Hi=(H(key)+di) MOD m i=1,2,…,k(k<=m-1)
其中,m为哈希表的表长。di 是产生冲突的时候的增量序列。如果di值可能为1,2,3,…m-1,称线性探测再散列。
如果di取1,则每次冲突之后,向后移动1个位置.如果di取值可能为1,-1,2,-2,4,-4,9,-9,16,-16,…k*k,-k*k(k<=m/2),称二次探测再散列。
如果di取值可能为伪随机数列。称伪随机探测再散列。
2.再哈希法
当发生冲突时,使用第二个、第三个、哈希函数计算地址,直到无冲突时。缺点:计算时间增加。
比如上面第一次按照姓首字母进行哈希,如果产生冲突可以按照姓字母首字母第二位进行哈希,再冲突,第三位,直到不冲突为止
3.链地址法(拉链法)
将所有关键字为同义词的记录存储在同一线性链表中。
4.建立一个公共溢出区
假设哈希函数的值域为[0,m-1],则设向量HashTable[0..m-1]为基本表,另外设立存储空间向量OverTable[0..v]用以存储发生冲突的记录。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 线性链表是存储结构还是逻辑结构 亲子阅读感言怎么写20字? 哈希索引和倒排查找怎么用简单 数据库中的hash索引的相关计算,请高手给予解答,谢谢! 请问数据结构中线性探测再散列法怎么算的?试举例说明。 散列表和线性存储的区别,在线等!!急!! 新申请的斗鱼主播为什么说不了话 什么是散列索引?如何构建散列索引 为啥我在斗鱼直播间发言主播都不理我呢,是一定要送鱼丸吗 斗鱼是直播间里面被禁言还能发得出去消息吗? 我的斗鱼tv,看不了主播,只能看别人对话 我在斗鱼主播那里怎么说不了话,第一次进主播直播间,应该不是被封吧,打了字直接消失 为什么我用手机发信息斗鱼主播看不见 ubuntu无法联网怎样安装和解压7z Iphone5s怎么调节亮度 applewatch保存的心跳和涂鸦在哪 applewatch心跳怎么玩 iwatch 无法和朋友传送心跳还有涂鸦功能 对方也有iwatch 已经开启imessage 砂锅云吞的制作方法是什么?你喜欢吃吗? applewatch的心率怎么传到手机 有关数据结构哈希表的问题? 郑州地铁五号线在黄河路与南阳路有站点吗 成都地铁5号线锦城大道B出口有卫生间吗? 郑州市第八人民医院离地铁五号线哪个站最近? 郑州至港区五号线班车郑州有哪些站点? 郑州银基商贸城做地铁从河南省儿童医院五号线坐到哪一站? 郑州地铁5号线怎么换成郑州地铁1号线东西南北 共享位置下边的黑色圈是什么 地铁五号线郑州火车站是什么名字? 如何在wps表格中只填2020年-2030年星期二星期四星期五星期日的日期? 如何在wps表格中只填星期二星期四星期日的日期 请问郑州东站能不能多设几个卫生间? 洗手盆堵塞如何疏通? 郑州五号线每小时多少公里呀? 微信通讯录里详细资料的右边有一个黑色的小人圈和一个红圈加一线白。各是什么意思呀? 一个黑色的圆圈把微信图标给圈起来了是怎么回事啊? 郑州地铁五号线,3位医生参与了一场惊心动魄的生死自救,他们经历了什么? 应急管理部规划财务司司长大吗 wps表格如果要在符合条件的表格中填充颜色怎么做?比如星期一~星期日,要填充星期五的单元格为*。 求问卫生间下水道堵塞怎么疏通?卫生间下水道反味怎么办?