HashMap扩容机制rehashing 1.8 和 1.7 效率有区别吗?
比如说拿数组大小为16(10000)举例。
Jdk1.7:
一个元素计算出哈希值为25(011001),对应的数组位置为25 & (16 - 1) = 9(1001),扩容后位置改为25 & (32 - 1) = 25(011001)。
Jdk1.8:
一个元素计算出哈希值为25(011001),对应的数组位置为25 & (16 - 1) = 9(1001),扩容后先判断 25 & 16 是否有为0,如果不为0就在原数组位置加16移到新位置9 + 16 = 25 的位置,否则位置不变。
为什么会说 Jdk1.8 的效率会更好?(纯属个人疑惑,如有不对请指出)
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
突然有点迷茫了,本科毕业4年,专业是计算机类,干过客服、干过技术支持,现在在干巡查性质的工作,下完班回来能抽个两三小时学习,目前学完了Java基础、面向对象、集合、异常、IO流、线程等内容,也完成了Mysql的语法学习、知道了索引、事务相关的内容。现在正在攻略学习路线里的SQL之母的自定义关卡(实战进阶),进度完成了2/3,到明天就能结束SQL部分的学习。我三年前找过王道培训班学的Java后端,但
5
问题描述我们评测一个功能是否正确,应该怎么写测试呢?特别是在AI时代,不人工review代码的情况 如何更好的使用测试来验收代码呢具体疑问平时都用AI写代码,随着需求增加,每次生成的代码都看不过来,只能借助AI生成测试来验收一下。但是测试也是AI生成的,我并不知道AI生成的测试是否符合我的需求,我也不太清楚,应该生成哪几种类型的测试才能更好的评估我们开发的功能。已有理解目前让AI写的有单元测试,集
4
想问一下大家,之前是在星球上充值了,然后俩年前没续费了,最近想学习所以在原来星球上续费了,发现没有人和项目提问和更新,才发现编程导航现在单独有一个网站,续费的会员不会同步吗
0
我想问一下大家简历的字体是多少号的呢,是2页还是3页
2
Spring Boot 如何处理跨域请求(CORS):深度调研报告
3
