首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
蜗牛20191023145836
2021-05-17 03:08
Java
关注
已关注
取消关注
hashmap底层原理
hashmap是由数组+链表构成的,在数组里面嵌套了链表,链表使用的结构为头插法。链表里面可以放多个entry即key, value防止冲突。
#Java工程师面试常考题#
#学习路径#
提示
全部评论
推荐
最新
楼层
蜗牛20191023145836
楼主
Java
https://zhuanlan.zhihu.com/p/76735726
1
回复
分享
发布于 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
滴滴
校招火热招聘中
官网直投
相关推荐
响亮的名字嘎嘎嘎
04-30 16:15
西南财经大学 统计学类
美团-日常实习
昨天下午六点面试,面试官就是以后的组长,人很好,面试也很愉快。今天中午商量后说是会安排519入职,但是还没发offer邮件。只面了一轮而且面试是我见过最轻松愉快的一个,与我对大厂的刻板印象有点出入。求助牛友们有遇到过这种情况嘛?慌的一批。
投递美团等公司10个岗位 >
点赞
评论
收藏
转发
鱼塘妹儿
04-29 19:29
已编辑
重庆邮电大学 计算机类
腾讯 PCG 暑期实习前端 一面(g
4.11 面完泡了四天排序挂 和牛客上看到的一篇面经基本完全一致,按照记忆大概写一下问题,顺序可能有出入。 1、自我介绍 2、介绍下项目 3、什么时候开始学习的前端? 4、看代码说输出 // 1.写出javascript运行结果: for(var i=0; i<10; i++){} alert(i); 5、看代码说输出,这道题考察的是什么? // 2.写出javascript运行结果: ...
点赞
评论
收藏
转发
去赛博码头整点电子薯条
03-15 03:19
哈尔滨工程大学 电子信息类
听人劝,帮看看孩子问题出在哪了
准备春招,已经尝试过很多家了,想投嵌入式软件和硬件工程师。今天一天收到了4家被拒结果…心态有点崩了…不太明白哪里有问题呢…和面试官大多都聊得来,我觉得自己每个项目都说得挺清楚的…想问问哪里不太对,或者大家给些建议吧,谢谢了 #听劝,我这个简历该怎么改?# #简历被挂麻了,求建议# #面试被挂#
听劝,我这个简历该怎么改?
简历被挂麻了,求建议
点赞
评论
收藏
转发
heyLance
04-09 21:25
已编辑
Momenta_嵌入式工程师(实习员工)
实习简历求各位大佬拷打
目标嵌入式或linux cpp方向,各位大佬有什么建议吗? #嵌入式# #简历# 项目2在这个基础上包装了一下
点赞
评论
收藏
转发
想减肥的中国人在找内推
昨天 23:21
已编辑
北京航空航天大学 电子信息类
25届,没的实习还有救吗?
暑期实习开的越来越快了,每天都能新增好多 最近新增的实习岗位主要以海尔智能,盒马,中国海油,华泰证券等大厂和国央企为主,少部分是中小企业,基本全国各地都有岗位而且好多职能hc,和往年相比,今年暑期实习明显加快了,开放时间更早,申请周期都比较短,投递反馈也非常快,大佬们一定要把握机会抓紧投递!
点赞
评论
收藏
转发
6
13
评论
分享
回复帖子
招聘动态
查看更多
滴滴
2025届秋招储备实习生招聘
全站热榜
1
...
毕业
7572
2
...
【薪资计算】SS Is All You Need
5982
3
...
【奖💰】通信硬件薪资爆料②
5366
4
...
浅谈一下今年暑期实习形势
4750
5
...
学弟们听劝,不要学后端
4436
6
...
计算机就业,别卷绩点,这是最大的信息差
3988
7
...
双非大学四年Apache PPMC 拿过大厂offer考研.
3820
8
...
双非硕士的出路
3373
9
...
阿里饿了么意向
3355
10
...
22届211工科考浙大失败不知道咋找工作了,有没有佬给点建议
3197
正在热议
#
牛客帮帮团来啦!有问必答
#
471323次浏览
8488人参与
#
找不到好工作选择GAP真的丢人吗
#
8966次浏览
91人参与
#
互联网没坑了,还能去哪里?
#
344581次浏览
5496人参与
#
双非本科求职如何逆袭
#
183196次浏览
2715人参与
#
你想对下半年说点什么
#
5715次浏览
135人参与
#
投递实习岗位前的准备
#
542916次浏览
9828人参与
#
工作两年想退休了
#
12877次浏览
122人参与
#
2022届毕业生现状
#
294049次浏览
4170人参与
#
非技术薪资爆料
#
66386次浏览
968人参与
#
许愿池
#
69130次浏览
1495人参与
#
华为开奖那些事
#
655482次浏览
5724人参与
#
非技术岗是怎么找实习的
#
67526次浏览
1322人参与
#
没有实习经历,还有机会进大厂吗
#
282751次浏览
5898人参与
#
在找工作求抱抱
#
292454次浏览
5609人参与
#
重来一次,我还会选择这个专业吗
#
78994次浏览
1216人参与
#
实习好累,可以辞职全力准备秋招吗
#
4209次浏览
82人参与
#
产品实习,你更倾向大公司or小公司
#
32711次浏览
510人参与
#
参加过提前批的机械人,你们还参加秋招么
#
9669次浏览
306人参与
#
Offer比较,你最看重什么?
#
44130次浏览
442人参与
#
找工作时遇到的神仙HR
#
160270次浏览
1654人参与
牛客网
牛客企业服务