首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-23 16:56
中南大学 运营
字节实习最大感受是不给你思考的时间
因为早就不是第一段实习了,所以对实习能学到东西还是有所要求的,而不是有个大厂title就行。平日的工作量就比较大,作为运营来说根本没时间看文档,就很难有闲下来的时间看文档沉淀,即使仅仅只是完成所有工作,也经常要加班了。运营实习一般都会有不少配置工作,我现在只会机械配置,但很难有空去思考整个产品的逻辑、配置背后的底层规则等等。跟进过的一些项目,也经常因为正职们太忙顾不上我而难以深入参与。现在的计划是混满三个月之后包装包装简历
华劲:
有字节的背景,去哪儿都不费劲了吧
投递字节跳动等公司9个岗位 >
聊聊这家公司值得去吗
点赞
评论
收藏
分享
06-26 19:47
中南大学 Java
悲,毕业了!
悲,毕业了!这是个坏事儿啊!
爱睡觉的冰箱哥:
《这是个好事啊》---峰哥浪走天涯
毕业后不工作的日子里我在做什么
牛客创作赏金赛
点赞
评论
收藏
分享
05-09 14:45
门头沟学院 Java
现在的HR,说话都这么冲的吗?
一个小公司hr,在上海就给10k+,说话语气这么冲?是不会好好说话吗?现在太卷了,让这种🤡hr都能挑三拣四。
已成为🐬孝子:
小公司就是容易碰到奇葩,之前投过浦东一家小厂,到那里先让我做一个小时高中数学题
找工作时遇到的神仙HR
找工作中的意难平
点赞
评论
收藏
分享
06-23 17:59
北京师范大学 Java
现在找工作都癫成这样了么
企业都这么缺人了吗?缺人为什么还给白菜价!
真起不了响亮的名字:
我给你出个主意,把公司报出来,让牛友去投,岂不美哉
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
6
15
分享
评论
提到的真题
返回内容
招聘动态
查看更多
现代汽车前瞻技术研发挑战赛
26届投递链接合集
快手
全站热榜
更多
1
...
秋招就投这些了
4.8W
2
...
28届双非大一斩获快手offer心得分享~
1.7W
3
...
求助!如何拒绝同个小区的同事蹭车?
7120
4
...
吃上软饭了家人们!
6999
5
...
前男友疯狂视奸我的工作动向
6995
6
...
早日成为评论区三和大神
6351
7
...
是不是找不到工作了
5942
8
...
正在实习,怎么平衡实习和秋招?
4385
9
...
25届刚入职和组里外包骂起来了
4093
10
...
女友爸爸帮我花钱找了工作,我爸妈觉得应该的
4074
创作者周榜
更多
正在热议
更多
#
26届校招投递进展
#
13260次浏览
135人参与
#
你秋招想去哪些公司
#
14364次浏览
685人参与
#
我的职场心眼子段位
#
24869次浏览
613人参与
#
怎么委婉指出leader的错误
#
17854次浏览
115人参与
#
职场捅娄子大赛
#
404252次浏览
4025人参与
#
为什么国企只招应届生
#
176782次浏览
1150人参与
#
那些我实习了才知道的事
#
210088次浏览
1715人参与
#
你的领导最像哪种动物,为什么?
#
13240次浏览
103人参与
#
为了找工作你花了哪些钱?
#
21944次浏览
223人参与
#
韶音科技求职进展汇总
#
49516次浏览
477人参与
#
机械人你觉得今年行情怎么样?
#
883次浏览
21人参与
#
你都遇到过哪些离谱的求职经历
#
13294次浏览
42人参与
#
第一份工作能做外包吗?
#
22086次浏览
250人参与
#
分享一个让你热爱工作的瞬间
#
29366次浏览
315人参与
#
机械人求职现状
#
14893次浏览
144人参与
#
机械制造秋招总结
#
52680次浏览
503人参与
#
考公VS就业,你怎么选?
#
62792次浏览
425人参与
#
你见过最离谱的招聘要求是什么?
#
197066次浏览
1472人参与
#
参加完秋招的机械人,还参加春招吗?
#
51965次浏览
556人参与
#
应届生应该先就业还是先择业
#
111962次浏览
650人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务