Java8.HashMap源码-resize()流程图
2020-04-29 16:08:59来源:博客园 阅读 ()
Java8.HashMap源码-resize()流程图
HashMap.resize()
链表扩容图解
Q1:如何理解扩容时(e.hash & oldCap) == 0? Q2:如何理解扩容时newTab[j + oldCap]? 设:HashMap.table = table[4] table[1]=X1->X2->X3->X4 1=X1.hash&(4-1)=X2.hash&(4-1)... 4-1=3->0011 若X.hash&0011 = 0001 即X.hash=TT01(TT:0或者1) X.hash&(oldCap=4)=0 = TT01&0100 if=0 TT01->T001 else TT01->T101 现在开始扩容了。4<<1 =8 寻下标算法:T.hash&(8-1)=TT01&0111 情况1 TT01=T001 T001 &0111=0001即数组下标为1,说明hash为 T001的元素都落在table[1]上 情况2 TT01=T101 T101 & 0111=0101即数组下标为5,说明hash为 T101的元素都落在table[5]上 即: newTab[j + oldCap]。原文链接:https://www.cnblogs.com/hutony/p/12793650.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:java中字节流操作(1)
- 你说研究过Spring里面的源码,循环依赖你会么? 2020-06-09
- 通俗理解spring源码(六)—— 默认标签(import、alias、be 2020-06-07
- 学习源码的第八个月,我成了Spring的开源贡献者 2020-06-02
- java 在线网络考试系统源码 springboot mybaits vue.js 前后 2020-05-31
- 高吞吐量的分布式发布订阅消息系统Kafka之Producer源码分析 2020-05-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash