首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
联易融
校招火热招聘中
官网直投
相关推荐
Cordioid
04-03 14:56
门头沟学院 电子信息类
美团到家一面04.02
自我介绍Java容器,使用场景HashMap底层实现,ArrayList底层实现数组和ArrayList的区别还有其他List吗ConcurrentHashMap如何解决线程安全问题多线程场景我们选用什么List讲一下Java内存区域JVM内存结构,哪一部分是线程共享的,哪一部分是不共享的使用线程池,设置线程数的依据是什么线程池的执行流程项目里使用过线程池吗?怎么用的说一下?线程池的拒绝策略MySQL索引结构聚簇索引和非聚簇索引有什么区别用索引之后,哪些方面的性能会得到大幅度的提升联合索引 (a, b, c),分别用ab、bc和ac查,哪些可以用到联合索引如何用数组实现阻塞队列,需要定义哪些变...
你收到了团子的OC了吗
我的求职思考
点赞
评论
收藏
转发
无语的马后炮炮手不放弃
04-09 21:01
深圳大学 电子信息类
4.2收到深圳移动信息技术中心的一面通知说4月8-10号进行,但是到现在还没收到具体的面试通知,是不是寄了啊,有一样没收到的兄弟嘛
点赞
评论
收藏
转发
White_Tree_Coder
04-16 16:59
Java
证劵公司java后台面试题
Gateway的流量请求大小?并发度的高低?使用Redis存储JWT的目的? 为了解决多个微服务之间的会话共享问题。在使用微服务架构时,每个微服务可能都有自己的Tomcat实例,而且可能会有多个实例。为了实现会话的共享和状态的一致性,可以使用Redis作为共享内存空间。与传统的基于Session的解决方案不同,使用Redis可以避免依赖于单个Tomcat实例的会话存储,从而解决了跨实例导致的数据丢失问题。Token的自动刷新机制是什么? 通常是指在使用JWT时,通过定期刷新Token来延长用户的登录状态。一种常见的实现方式是在Token过期之前,通过特定的接口或拦截器对Token进行刷新操作。...
点赞
评论
收藏
转发
SprAut_
03-28 19:36
Nanyang Technological University 计算机类
腾讯NLP一面面经
面试时间:3.28流程:自我介绍—>项目/八股穿插—>手撕代码(本地IDE)——>反问时长:约70分钟八股:RoBERTa的改进中文RoBERTa的分词(不过这点面试官说不了解也没关系)focal losslora原理什么情况下适合全参数微调,什么情况下适合lora微调(我答的数据量少、单一任务时更适合lora,因为lora更新的参数少,原论文没有对FFN更新,任务单一数据少时直接全参数微调容易出现灾难性遗忘/原始能力丧失。不清楚是否准确)对知识蒸馏的了解代码:beam search 先说原理再写伪代码(只需要写出搜索部分)编辑距离面的是微信输入法的岗位,业务偏传统nlp,项目问的比较多
腾讯一面1049人在聊
点赞
评论
收藏
转发
志哥的JAVA
04-22 13:17
Java
JUC面试题+答案
ThreadLocal的理解场景1:每个线程需要一个独享的对象【通常是工具类,典型需要使用的类有SimpleDateFormat和Random】【每个Thread内有自己的实例副本,不共享;比如教材只有一本,一起做笔记会有线程安全问题,复印后就没问题了】场景2:每个线程内需要保存全局变量【例如在拦截器中获取用户信息】可以让不同方法直接使用,避免参数传递的麻烦作用:让某个需要用到的对象在线程间隔离【每个线程都有自己的独立对象】优点:保证线程安全;不需要加锁,提高执行效率;更高效的利用内存,节省空间;免去传参的繁琐,降低代码耦合度Get方法过程:得到这个线程对应的value。如果是首次调用get,...
Java之项目解析+八股...
点赞
评论
收藏
转发
6
13
评论
分享
回复帖子
招聘动态
查看更多
联易融2024届营销管培生校园招聘
全站热榜
1
...
一个CS人在字节升级打怪(实习转正版)
9801
2
...
中科大软件工程研二,字节实习一年多,是时候了...
8852
3
...
📢【有奖征集】非技术岗位薪资爆料💰💰💰
8422
4
...
0offerのloser记录2024所有面试(全挂)
7993
5
...
阿里国际 1个小时40分钟
6129
6
...
配不上自己的野心,也辜负了所受的苦难
6038
7
...
菜鸟本科毕业答辩指南
5839
8
...
4.25校招&实习招聘信息汇总
5245
9
...
盲审
5168
10
...
腾讯音乐-QQ音乐前端一面(秒过)
5061
正在热议
#
牛客帮帮团来啦!有问必答
#
336444次浏览
7072人参与
#
晒一晒我的offer
#
2750885次浏览
49391人参与
#
华为求职进展汇总
#
430936次浏览
4324人参与
#
第一次面试
#
12979次浏览
199人参与
#
非技术岗薪资爆料
#
4047次浏览
94人参与
#
机械人怎么评价今年的华为
#
47175次浏览
376人参与
#
你更愿意参加线上面试还是线下面试?
#
3552次浏览
49人参与
#
来聊聊机械薪资天花板是哪家
#
17185次浏览
130人参与
#
应届生应该先就业还是先择业
#
10430次浏览
103人参与
#
找工作,你会甘心进小厂还是猛冲大厂
#
21762次浏览
208人参与
#
百度工作体验
#
18880次浏览
205人参与
#
为什么那么多公司毁约
#
31919次浏览
267人参与
#
实习工作,你找得还顺利吗?
#
4730次浏览
70人参与
#
除了offer,现在你还缺点啥?
#
1820次浏览
43人参与
#
讲讲我经历过的年终奖
#
5758次浏览
76人参与
#
通信硬件人笔面经互助
#
59257次浏览
1329人参与
#
如果校招重来我最想改变的是
#
69817次浏览
1374人参与
#
通信硬件薪资爆料
#
133321次浏览
906人参与
#
租房前辈的忠告
#
19587次浏览
1567人参与
#
毕业后不工作的日子里我在做什么
#
39831次浏览
582人参与
牛客网
牛客企业服务