首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
06-25 19:08
TCL科技集团股份有限公司_AI算法工程师(准入职员工)
TCL内推
刚离校两个月余,看到25届秋招又火热进行,内心不免感慨 经历过的秋招,春招,天天焦虑到不知所措熬的夜,回忆起来仿佛还在昨天 进T家的两个月,每天都有不一样的感触 良好的校企过渡 动力营让五湖四海的伙伴们齐聚,了解了T家的身世,产业;学到了各岗位的知识,能力;储备了身份转变进入职场的心理和规划 个训营,深入到自己的事业部清晰了事业部的主营业务,岗位的具体知识 产线实践,实际动手装机,明白一台机器是如何被生产和点亮 签订师徒帖,一对一师傅带教,得到专业知识传授,具体系统流程操作 一步步的安排形成了良好的从学校→企业的过渡,完善的新人培养方案是值得认可的 从一开始的茫然到慢慢熟悉工作内容,当真的做出...
TCL公司福利 448人发布
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
今天 17:26
投了一个月0实习offer
好想哭都不知道找谁哭,我真的那么差劲吗。bg985本大二,同学有的去大厂实习了有的要留学回家了...我招聘软件加起来投了400多个要么说我没有实习经验,要么说我性格内敛不适合,我真的...但是暑假在南方有事又回不了家,好想哭...(已经哭了)
点赞
评论
收藏
分享
昨天 18:52
腾讯_大数据高性能开发(准入职员工)
腾讯内推
分享面经(wxg 某团队----客户端开发)一面 (1个小时05分钟)30分钟的实习cpp的一些问题,比如如何利用windowsapi设计窗口,z型扫描,如何定位等问题(30分钟)1个小时后约复试二面(1个小时)20分钟实习之后看了看我的github,给面试官跑了一下之前自己开源的代码和博客。30分钟。10分钟 反转链表(好多次都写反转链表了哈哈)1个小时后约第二次复试三面30分钟实习(1小时50分钟)场景题 弹窗的设计以及大数据的处理。(跟之前的很像,我发现这些企业都爱考整体的架构设计,)要包括数据库和中间件的设计以及处理。(因为我实习和开源的东西用到过)1个小时20分钟智力题我是真没准备,...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
6
15
分享
评论
提到的真题
返回内容
招聘动态
查看更多
现代汽车前瞻技术研发中心
京东TET
全站热榜
更多
1
...
实习周报不要再写流水账了
2.2W
2
...
算一笔账
5312
3
...
快手凉经
4597
4
...
工资还是得攒着
4361
5
...
差点忘了以前是干嘛的,这个梗就是2025年最大的一坨
3946
6
...
毕业之后再也没人给我兜底了
3946
7
...
字节暑期实习刚oc要不要去
2294
8
...
实习又开始做dirty work了
2220
9
...
依旧认为前端是版本答案
2209
10
...
这样的实习,我还有必要坚持下去吗?
2206
创作者周榜
更多
正在热议
更多
#
如何准备秋招
#
9139次浏览
158人参与
#
软开人,秋招你打算投哪些公司呢
#
100507次浏览
944人参与
#
现代汽车前瞻技术研发急速编程挑战赛
#
21573次浏览
184人参与
#
你觉得实习能学到东西吗
#
13404次浏览
329人参与
#
每个月的工资都是怎么分配的?
#
12701次浏览
280人参与
#
实习,不懂就问
#
25317次浏览
394人参与
#
秋招什么时候开投比较合适?
#
5473次浏览
120人参与
#
你觉得现在还能进互联网吗?
#
4092次浏览
94人参与
#
预测一下26届秋招形势
#
20974次浏览
218人参与
#
技术岗笔试题求解
#
75315次浏览
974人参与
#
聊聊你的职场新体验
#
161177次浏览
1391人参与
#
你最近一次加班是什么时候?
#
67665次浏览
346人参与
#
高考出分的那一天,我__
#
14551次浏览
241人参与
#
打工人的精神状态
#
53508次浏览
969人参与
#
机械实习一天多少钱合适?
#
28752次浏览
176人参与
#
米哈游工作体验
#
17549次浏览
116人参与
#
非技术岗简历怎么写
#
216538次浏览
2915人参与
#
你们公司几号发工资
#
18730次浏览
116人参与
#
你觉得实习只能是打杂吗?
#
192060次浏览
1211人参与
#
来聊聊你认为的薪资天花板是哪家?
#
30692次浏览
174人参与
#
安利/避雷我的专业
#
75872次浏览
522人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务