首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
05-22 21:39
已编辑
蚌埠坦克学院 UE5
27届UE游戏客户端开发暑期实习总结
准备溜去实习了,总结一下找暑期实习的这两个月吧。鼠鼠bg是末二本末九硕无实习,并且本科是非科班(和码完全不沾的那种),也是因为想做游戏才跨考到这个行业,所以也没投递过其他的方向,全部是游戏客户端开发。项目是跟着外网的一个教程敲了一个基于GAS系统的ARPG,自己通过AI魔改加入了联机功能。无图形学简历挂:巨人网络,叠纸网络,鹰角暑期,字节跳动(所有工作室都投了一遍没一个过的),莉莉丝,B站,游卡,快手,EA,还有不少中小厂都是投了就没下文了,不一一列举了。中小厂更想要过了就能立马去实习的,如果要投的话不要提前投笔试挂:网易雷火AI面挂:柠檬微趣(逆天一面挂:魔方某FPS,光子某FPS,灵犀互娱...
我的求职进度条
点赞
评论
收藏
分享
05-24 19:19
门头沟学院 前端工程师
PDD前端应聘者画像,个人总结供参考
1.基础价值观&条件:无拼不青春、能吃苦、接受11-11-6+的作息、本分2.简历:技术岗位(前后端)最好有实习否则简历很难过筛、客户端相比可能会更加宽松(26届数据)3.笔试:前端岗位考的都是基础的核心内容(三个选择题+三个简答题)3.1 选择题:循环,异步代码输出分析、前端相关的计算机网络等基础知识3.2 简答题:前端手撕题和场景题手撕,包括Flex布局和CSS3样式设定、Vue3的响应式原理实现、Promise相关内容(并发、一次串行执行、带限制的重试等等、函数柯里化和扁平化对象等等,简答题纯文本手撕无需进行代码提交和测试用例。4.面试(通常3轮技术面+一轮HR面+超长的泡池子,...
查看30道真题和解析
点赞
评论
收藏
分享
05-09 12:10
济宁学院 Java
简历写成这样能找到实习吗,双非大三
程序员小白条:
丰富下简历,有点少了,中小厂反正看运气海投
点赞
评论
收藏
分享
04-13 11:19
门头沟学院 HTML5
26还没找结束,27已经开始了吗?
这个世界太疯狂了
NullPointe...:
27实习的都快结束了吧
点赞
评论
收藏
分享
今天 11:42
金山WPS_质量保障部_测试实习生(实习员工)
27届学院本简历求拷打
27届学院本,目前一段中厂实习,一个ai项目一个后端项目,ai项目是vibecoding的,leetcode hot100现在刷了快1/3,想问下大厂测开日常实习难不难进,这个简历能不能冲大厂...
听劝,我这个简历该怎么改...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
6
15
分享
评论
提到的真题
返回内容
招聘动态
查看更多
快手
27届实习超多转正机会
27届校招宝典
网申助手插件
校招信息网申列表
全站热榜
更多
1
...
来🦢的第一个需求就是3000行skill
3.2W
2
...
父母还是太爱我们
1.5W
3
...
10年代码经验,分享我常用的AI工具
8808
4
...
27届暑期大厂后段高频面试汇总
5445
5
...
大厂嘉豪图鉴
3853
6
...
父母就是我求职路上最大的山
3652
7
...
26届学院本总结
3402
8
...
凉经-腾讯音乐软件开发(后台开发)一面
3075
9
...
一名本科生的独白,焦虑,迷茫,疑惑
2936
10
...
大厂工贼 - 恐怖如斯
2852
创作者周榜
更多
正在热议
更多
#
实习生的蛐蛐区
#
993064次浏览
4995人参与
#
万物皆可发面经
#
3507次浏览
48人参与
#
发面经攒人品
#
8848186次浏览
98137人参与
#
国企是春招机械人最好的去处吗
#
153410次浏览
578人参与
#
27届实习投递记录
#
160737次浏览
1633人参与
#
实习,不懂就问
#
227432次浏览
1749人参与
#
AI了,我在打一种很新的工
#
205111次浏览
2032人参与
#
秋招投递攻略
#
295470次浏览
2640人参与
#
从mentor身上学到了__
#
67456次浏览
938人参与
#
父母对你找工作是助力还是阻力?
#
51876次浏览
457人参与
#
你的mentor是什么样的人?
#
66673次浏览
841人参与
#
你觉得mentor喜欢什么样的实习生
#
63844次浏览
1079人参与
#
我和mentor的爱恨情仇
#
121289次浏览
1036人参与
#
牛友的志愿填报指南
#
73184次浏览
506人参与
#
找实习记录
#
281911次浏览
1663人参与
#
找工作时的取与舍
#
139973次浏览
932人参与
#
第一次找实习,我建议__
#
89708次浏览
910人参与
#
你上一次给父母打电话是什么时候
#
46644次浏览
288人参与
#
拿到offer之后,可以做些什么
#
121728次浏览
577人参与
#
求职中的尴尬瞬间
#
43105次浏览
127人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务