HashMap源码分析
刚创建好HashMap还没有添加元素的时候
table = null;
size = 0;
添加完第一个元素之后容量大小变为16,目的是节省空间
核心总结
1.刚创建好HashMap还没有添加元素的时候table为null,size = 0;添加进第一个元素放到数组的i位置,此时初始容量为16
3.当每个链表的长度大于8且数组元素个数大于等于64时,链表就转变为红黑树。目的是提高执行效率
4.当链表长度小于6,调整回链表
5.jdk1.8以前链表是头插入:新添加进的元素放进数组的i位置,以前i位置内的元素往外挪
jdk1.8之后是尾插入:新添加的元素依次往后排
HashSet与HashMap的区别
分析上述HashSet源码发现:
HashSet就是用的HashMap,HashSet的add方法用的就是HashMap的key来保存元素
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律