首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
12-23 21:04
滴滴_运维开发工程师(准入职员工)
滴滴内推,滴滴内推码
滴滴提前批 出行方向 一面面经😊终于面到核心组了 太不容易了 八股项目都问了1、concurrenthashmap如何保证并发安全2、strign字符串为什么是不可变的3、hashmap的扩容4、联合索引 a=1 b<2 c=3触发规则5、redolog binlog undolog 写入顺序,用update语句举例6、慢sql排查 优化思路7、如果sql已经优化到极致了,偶尔出现比较慢的情况 一般是因为什么?8、缓存穿透怎么解决?9、redisson延迟队列和分布式限流底层原理10、如何利用redis做滑动窗口限流11、有咩有jvm调优经验12、cms 和G1的区别12、spring...
点赞
评论
收藏
分享
12-18 22:43
武汉大学 Java
20251218【阿里】面试算法真题(共1题)
题目1:最长恰好k种不同字符的子串长度
点赞
评论
收藏
分享
12-19 18:19
沐瞳科技_游戏策划(准入职员工)
沐瞳科技内推,沐瞳科技内推码
游戏运营问题:看你以往经历没有涉及游戏,为什么想进入这行?深挖活动运营经历:评估效果会关注哪些指标?新游戏上线后,你会优先关注哪些数据?如果游戏下载量、留存、回流同时出问题,先解决哪个?平时玩什么游戏?为什么喜欢它?(建议提前准备游戏分析)你觉得《MLBB》有哪些可以改进的地方?📚 高频考点整理▪️ 游戏运营理解:内容搭建、版本迭代、用户/渠道运营、数据分析缺一不可。▪️ 数据指标:留存率、ARPU、付费率、活跃玩家分析是核心。▪️ 新手引导设计:简洁提示+适当奖励+难度梯度是关键。▪️ 活动策划:节日活动、社区互动、召回机制都能提升在线人数。🔍 行业工具推荐数据分析常用:七麦、蝉大师、S...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
6
15
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
26届双非本鼠硕拿下5个ssp的秋招总结及一条龙经验分享
1.1W
2
...
2025的主旋律是蛰伏,落寞,遗憾
1.0W
3
...
选择即命运—2025年度总结
5265
4
...
学校发力了,没招了牛友们
4527
5
...
从H200解禁评估:国资算力平台还值得应届就业吗?
4495
6
...
我只是一个脆弱的人
4258
7
...
在大厂实习 因为请一天病假要求我离职
4116
8
...
尼克狐尼克,你被捕了
3661
9
...
【25年终总结】-牛客运营团队
3613
10
...
字节投入千亿搞AI,AI时代有节选节?
3528
创作者周榜
更多
正在热议
更多
#
2025年终总结
#
165464次浏览
2802人参与
#
找工作,行业重要还是岗位重要?
#
84713次浏览
1675人参与
#
你面试体验感最差/最好的公司
#
12356次浏览
208人参与
#
一人说一个提前实习的好处
#
7460次浏览
144人参与
#
重来一次,你会对开始求职的自己说
#
5039次浏览
131人参与
#
秋招落幕,你是He or Be
#
7466次浏览
164人参与
#
实习没事做是福还是祸?
#
12229次浏览
196人参与
#
今年你最想重开的一场面试是?
#
2467次浏览
37人参与
#
团建是“福利”还是是 “渡劫”
#
5998次浏览
136人参与
#
你小心翼翼的闯过多大的祸?
#
9928次浏览
144人参与
#
比亚迪工作体验
#
73349次浏览
277人参与
#
工作中听到最受打击的一句话
#
4352次浏览
83人参与
#
大厂VS公务员你怎么选
#
73410次浏览
673人参与
#
长城汽车工作体验
#
12850次浏览
16人参与
#
机械人避雷的岗位/公司
#
38577次浏览
261人参与
#
如何排解工作中的焦虑
#
246942次浏览
2275人参与
#
秋招结束之后的日子
#
114114次浏览
1052人参与
#
应届生进小公司有什么影响吗
#
109749次浏览
1124人参与
#
机械制造面试点评
#
80744次浏览
465人参与
#
总结:哪家公司面试体验感最差
#
83209次浏览
388人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务