首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
蜗牛20191023145836
2021-05-17 03:08
四川大学 Java
关注
已关注
取消关注
hashmap底层原理
hashmap是由数组+链表构成的,在数组里面嵌套了链表,链表使用的结构为头插法。链表里面可以放多个entry即key, value防止冲突。
#Java工程师面试常考题#
#学习路径#
提示
全部评论
推荐
最新
楼层
蜗牛20191023145836
楼主
四川大学 Java
https://zhuanlan.zhihu.com/p/76735726
2
回复
分享
发布于 2021-05-17 03:43
蜗牛20191023145836
楼主
四川大学 Java
https://mp.weixin.qq.com/s/-xFSHf7Gz3FUcafTJUIGWQ
点赞
回复
分享
发布于 2021-05-17 03:42
蜗牛20191023145836
楼主
四川大学 Java
第一:当length为2的N次方的时候,h & (length-1) = h % length 为什么&效率更高呢?因为位运算直接对内存数据进行操作,不需要转成十进制,所以位运算要比取模运算的效率更高 第二:当length为2的N次方的时候,数据分布均匀,减少冲突 此时我们基于第一个原因进行分析,此时hash策略为h & (length-1)。
点赞
回复
分享
发布于 2021-05-17 03:34
蜗牛20191023145836
楼主
四川大学 Java
如果不是2的幂,会导致不均匀。只要是2的幂,并且保证hashcode是均匀分布的,那么得出的结果就是均匀的
点赞
回复
分享
发布于 2021-05-17 03:20
蜗牛20191023145836
楼主
四川大学 Java
下面我们以值为“book”的Key来演示整个过程: 1.计算book的hashcode,结果为十进制的3029737,二进制的101110001110101110 1001。 2.假定HashMap长度是默认的16,计算Length-1的结果为十进制的15,二进制的1111。 3.把以上两个结果做与运算,101110001110101110 1001 & 1111 = 1001,十进制是9,所以 index=9。 可以说,Hash算法最终得到的index结果,完全取决于Key的Hashcode值的最后几位。
点赞
回复
分享
发布于 2021-05-17 03:18
蜗牛20191023145836
楼主
四川大学 Java
如何实现一个尽量均匀分布的Hash函数呢?我们通过利用Key的HashCode值来做某种运算。 位运算的方式实现:(Length是HashMap的长度): index = HashCode(Key) & (Length - 1)
点赞
回复
分享
发布于 2021-05-17 03:16
蜗牛20191023145836
楼主
四川大学 Java
对于HashMap,我们最常使用的是两个方法:Get 和 Put。 1.Put方法的原理 调用Put方法的时候发生了什么呢? 比如调用 hashMap.put("apple", 0) ,插入一个Key为“apple"的元素。这时候我们需要利用一个哈希函数来确定Entry的插入位置(index): index = Hash(“apple”)
点赞
回复
分享
发布于 2021-05-17 03:14
蜗牛20191023145836
楼主
四川大学 Java
hashmap的默认初始长度为16,每次自动扩展或者手动扩展时,长度必须是2的幂
点赞
回复
分享
发布于 2021-05-17 03:11
蜗牛20191023145836
楼主
四川大学 Java
两个常用的方法:hashmap.put和get
点赞
回复
分享
发布于 2021-05-17 03:09
暂无评论,快来抢首评~
相关推荐
今天 14:54
西南石油大学 电力电子工程师
为什么叫学历厂?
为什么叫学历厂?因为学历够高,基本点击就送啊🤔代表厂商:tplink,tp联洲,比亚迪,华为…欢迎补充!
说说你知道的学历厂
点赞
评论
收藏
分享
07-02 20:00
北京体育大学 测试工程师
放弃互联网 直接考公
我的母校已经开设公务员微专业了 把你培养成一个优秀的公务员人才直接报名这个专业 少走太多弯路!
叁六玖:
我勒个去,报这个专业直接一步到位
你觉得现在还能进互联网吗...
点赞
评论
收藏
分享
05-19 18:08
上海科技大学 C++
字节怎么老是拒我啊,是什么原因啊?
下个早班:
秒挂就是不缺人
点赞
评论
收藏
分享
06-08 22:25
门头沟学院 Java
有谁遇到这情况?
跟人机一样的hr
从零开始的转码生活:
这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞
评论
收藏
分享
07-02 13:52
武汉大学 golang
露头就秒
骗你的不露头也秒
牛客87776816...:
😃
查看图片
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
6
15
分享
评论
提到的真题
返回内容
招聘动态
查看更多
26届投递链接合集
快手
快Star-X特别技术人才计划启动
现代汽车前瞻技术研发中心
京东TET
全站热榜
更多
1
...
🌟择难路,未有疑,四非学院本运气拉满,春招拿下大厂后端
6.1W
2
...
秋招应该侧重准备哪个部分的内容
1.0W
3
...
腾讯云智后台开发暑期面经
8440
4
...
史上最细SQL实战系列:sql笔试例题总结篇(建议收藏)
8152
5
...
25届毕业现在在家呆了一个多月,没工作
8152
6
...
恋爱四年没想到过自己会出轨
7992
7
...
其实主包早就找到工作了,但还是每天都刷
6303
8
...
字节实习week6:听leader吐槽当前的应届生候选人们
4908
9
...
离开软件测试才发现外面没有雨
4655
10
...
作为实习生,我问薪无愧
4631
创作者周榜
更多
正在热议
更多
#
应届生,你找到工作了吗
#
2010次浏览
29人参与
#
双非应该如何逆袭?
#
173078次浏览
2936人参与
#
现代汽车前瞻技术研发急速编程挑战赛
#
38523次浏览
278人参与
#
简历当中有水分算不算造假?
#
3856次浏览
39人参与
#
春招进度记录
#
340761次浏览
3211人参与
#
实习生的蛐蛐区
#
3320次浏览
34人参与
#
谈薪时HR压价该怎么应对
#
205717次浏览
3177人参与
#
百度秋招提前批进度
#
105092次浏览
1123人参与
#
三一集团提前批进度交流
#
22132次浏览
138人参与
#
毕业旅行去哪玩儿
#
7817次浏览
123人参与
#
双非有机会进大厂吗
#
433791次浏览
4372人参与
#
正在春招的你,也参与了去年秋招吗?
#
308640次浏览
2523人参与
#
非技术岗投递进展
#
144392次浏览
1264人参与
#
百度求职进展汇总
#
406226次浏览
4718人参与
#
上班到公司第一件事做什么?
#
60363次浏览
520人参与
#
秋招盘点:机械人值得去的企业
#
71912次浏览
670人参与
#
材料进Fab厂真的劝退吗?
#
43125次浏览
184人参与
#
我的OC时间线
#
814518次浏览
7745人参与
#
百度工作体验
#
229603次浏览
2009人参与
#
没有合适的工作,你会先找个干着,还是考公考研
#
116061次浏览
1133人参与
#
如果可以,你希望哪个公司来捞你
#
96588次浏览
397人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务