首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
两个常用的方法:hashmap.put和get
点赞
回复
分享
发布于 2021-05-17 03:09
蜗牛20191023145836
楼主
四川大学 Java
hashmap的默认初始长度为16,每次自动扩展或者手动扩展时,长度必须是2的幂
点赞
回复
分享
发布于 2021-05-17 03:11
蜗牛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
如何实现一个尽量均匀分布的Hash函数呢?我们通过利用Key的HashCode值来做某种运算。 位运算的方式实现:(Length是HashMap的长度): index = HashCode(Key) & (Length - 1)
点赞
回复
分享
发布于 2021-05-17 03:16
蜗牛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
如果不是2的幂,会导致不均匀。只要是2的幂,并且保证hashcode是均匀分布的,那么得出的结果就是均匀的
点赞
回复
分享
发布于 2021-05-17 03:20
蜗牛20191023145836
楼主
四川大学 Java
第一:当length为2的N次方的时候,h & (length-1) = h % length 为什么&效率更高呢?因为位运算直接对内存数据进行操作,不需要转成十进制,所以位运算要比取模运算的效率更高 第二:当length为2的N次方的时候,数据分布均匀,减少冲突 此时我们基于第一个原因进行分析,此时hash策略为h & (length-1)。
点赞
回复
分享
发布于 2021-05-17 03:34
蜗牛20191023145836
楼主
四川大学 Java
https://mp.weixin.qq.com/s/-xFSHf7Gz3FUcafTJUIGWQ
点赞
回复
分享
发布于 2021-05-17 03:42
还没有回复哦~
相关推荐
02-17 12:06
中国矿业大学 前端工程师
腾讯pcg日常实习前端一面
1.自我介绍2.介绍一下项目3.用户登录是如何实现的4.token过期怎么办5.用户在浏览器输入地址后发生什么6.元素水平垂直居中如何实现7.v2和v3的区别8.vue组件通信的方式9.v-for时key的作用10.防抖和节流是怎么实现的,使用场景有哪些11.localStorage、sessionStorage、cookie的区别12.编程题 把代码也放出来供大家取笑13.反问
查看13道真题和解析
点赞
评论
收藏
分享
昨天 11:50
门头沟学院 产品经理
春招HR黑话图鉴
✖️年底双薪,13薪起 ✔️只有13薪✖️薪资全行业最高✔️全行业加班最猛,工作最卷✖️工资面议✔️工资不高,怕你看到工资少不来面试✖️不要在意当前薪资,未来发展空间大✔️薪资给的低✖️工资上不封顶,只要你优秀✔️底薪不高,靠你拿提成✖️希望你有工作经验✔️要求快速上手✖️希望你适应性强,拥抱变化✔️我们规章制度变来变去✖️期望你抗压能力强✔️末尾淘汰制,竞争激烈,钱少事多任务重✖️扁平化管理✔️公司人少,没什么部门架构✖️我们团队很有活力,基本都是90后✔️员工资历浅,工作没人带纯靠自学✖️公司不打卡/弹性工作制✔️早上来得晚,晚上走得晚,弹走一切休息时间✖️有广阔的发展空间✔️可能是创业公...
点赞
评论
收藏
分享
01-29 16:08
已编辑
华南农业大学 Java
双非本,大三下想找小厂日常实习,有机会吗
#今年形式下双非本找得到工作吗#目前在背八股文和刷代码随想录,力扣hot100做了四十多题,还有救吗
数学转码崽:
小厂没必要去,去个中厂吧,力扣40多道找中厂日常足够了。再加上你bg对中厂也还不错
今年形式下双非本找得到工作吗
点赞
评论
收藏
分享
01-16 20:22
北京邮电大学 硬件开发
释放小米offer
手机部
小狗吃臭臭:
以后用不到你设计的手机了,可惜!
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
6
15
分享
评论
提到的真题
返回内容
招聘动态
查看更多
400+企业岗位投递合集
京东 TET管培生
全站热榜
更多
1
...
脱下孔乙己长衫,浅聊一下就业下沉!
1.7W
2
...
美团java后端日常实习一二面
1.5W
3
...
腾讯PCG QQ后台开发一面
1.3W
4
...
腾讯/字节/快手 前端面经汇总
1.3W
5
...
【未来准备7】就业下沉时代,如何摆脱困境
9176
6
...
实习入职第一天,应该做点啥❓
6232
7
...
腾讯hr部门有约三面的吗
5765
8
...
当你获得字节offer的那天,一切都将作废。你的本科作废,你的专业作废,星星作废,月亮作废,银河系作废,宇宙作废,你的恨作废,你的前半生作废。悬梁七战终上字节,大雪深埋垃圾本科!字节的录取通知书会像一
5713
9
...
【有奖互动】你问过DeepSeek什么意想不到的问题?
5387
10
...
25届投递记录-水滴篇
5186
创作者周榜
更多
正在热议
更多
#
听劝,这个简历怎么改
#
17279次浏览
231人参与
#
你见过最离谱的招聘要求是什么?
#
145879次浏览
862人参与
#
水滴春招
#
33554次浏览
570人参与
#
你想留在一线还是回老家?
#
16495次浏览
236人参与
#
分享一个让你热爱工作的瞬间
#
16389次浏览
173人参与
#
25届如何提前做秋招准备?
#
145512次浏览
2288人参与
#
入职第四天,心情怎么样
#
12476次浏览
85人参与
#
面试被问“你的缺点是什么?”怎么答
#
10420次浏览
202人参与
#
参加完秋招的机械人,还参加春招吗?
#
27579次浏览
280人参与
#
如果你有一天可以担任公司的CEO,你会做哪三件事?
#
20692次浏览
415人参与
#
机械校招之路总结
#
80267次浏览
1759人参与
#
第一份工作应该选高薪还是热爱?
#
4546次浏览
81人参与
#
如果重来一次你还会读研吗
#
156876次浏览
1716人参与
#
租房找室友
#
8453次浏览
53人参与
#
职场新人生存指南
#
200745次浏览
5556人参与
#
地方国企笔面经互助
#
18104次浏览
26人参与
#
简历无回复,你会继续海投还是优化再投?
#
48979次浏览
564人参与
#
读研or工作,哪个性价比更高?
#
26454次浏览
357人参与
#
你们的毕业论文什么进度了
#
904417次浏览
8992人参与
#
文科生还参加今年的春招吗
#
4406次浏览
32人参与
#
百度工作体验
#
178182次浏览
1780人参与
牛客网
牛客企业服务