关注
关于hashmap的翻倍扩容,我有一点理解,抛砖引玉,同学你可以参考一下
1. 1.8之前用头插法,因为头插法快,毕竟拉链法是没有维护尾指针的(印象中应该是没有),每次尾插是需要定位到尾节点的
2. 1.8针对hashmap并发环境下的隐患,改成了尾插,但是如1所说,性能是个问题
3. 1.8的容量要求是2的幂次,然后翻倍扩容,这样会出现这么一种情况:容量n的表,位置a的元素,在扩容后只会出现在两个地方,a或n+a,举个例子,容量是4的表,0号位置的元素可能是0、4、8,如果翻倍扩容,0--0,4--4,8--0,但是如果是一半扩容,0--0,4--4,8--1
4. 你去看一下1.8的扩容,它是先存储在一个链表中(因为按照3,所有需要迁移的元素都会到同一个位置),最后在把链表放到散列位置的。这样就解决了2里面的性能问题。
5. 其实如果不是2的幂次,定位散列位置也很快,都是(newSize-1)&hashCode
6. 有个细节可以注意一下,哈希值的获取其实是结合了高位与低位,避免了只有高位变化时候的哈希冲突,源码上好像有解释
个人理解,不一定对,有问题请指正😁
查看原帖
3 4
相关推荐
点赞 评论 收藏
分享
11-18 20:04
泉州职业技术大学 算法工程师
专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了
把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。
现在是学校不是92就扣分的,没必要放前面。
然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你小心翼翼的闯过多大的祸? #
1371次浏览 42人参与
# 考研人,我有话说 #
156360次浏览 1211人参与
# 实习没事做是福还是祸? #
1589次浏览 27人参与
# 找不到实习会影响秋招吗 #
1398834次浏览 13627人参与
# 2025年终总结 #
129004次浏览 2170人参与
# 实习简历求拷打 #
21028次浏览 228人参与
# 哪些公司笔/面试难度大? #
6958次浏览 31人参与
# 携程工作体验 #
18789次浏览 66人参与
# 投格力的你,拿到offer了吗? #
154313次浏览 829人参与
# 秋招遇到的奇葩面试题 #
101164次浏览 416人参与
# 你觉得现在还能进互联网吗? #
29840次浏览 200人参与
# 简历当中有水分算不算造假? #
154204次浏览 2250人参与
# 作业帮求职进展汇总 #
84919次浏览 559人参与
# 秋招被挂春招仍然能投的公司 #
8713次浏览 110人参与
# 扒一扒那些奇葩实习经历 #
139997次浏览 1148人参与
# 正在实习的你,有转正机会吗? #
465628次浏览 3062人参与
# mt对你说过最有启发的一句话 #
41328次浏览 466人参与
# 秋招被确诊为…… #
277082次浏览 1583人参与
# 国庆前的秋招小结 #
265740次浏览 1718人参与
# 信也科技工作体验 #
13488次浏览 39人参与
