文章 2024-10-19 来自:开发者社区

让星星⭐月亮告诉你,HashMap的put方法源码解析及其中两种会触发扩容的场景(足够详尽,有问题欢迎指正~)

分析HashMap的put方法的源码后发现,HashMap的扩容方法在两个场景下会被调用: 初始化HashMap的链表数组时,会被调用,用来初始化链表数组的初始容量为16,以及初始化链表数组的阈值为初始容量16*负载因子0.75=12;当put到HashMap存储的元素个数超过阈值时,会被调用࿰...

文章 2024-10-19 来自:开发者社区

让星星⭐月亮告诉你,HashMap的resize()即扩容方法源码解读(已重新完善,如有不足之处,欢迎指正~)

分析HashMap的resize()即扩容方法的源码,会发现主要分两部分操作: 为创建新数组初始化新数组容量和新数组扩容阈值;创建新数组后,需将数据从旧数组转移到新数组上来,旧数组上的数据会根据(e.hash & oldCap) 是否等于0,重新rehash计算其在新数组上的索引位置,分成2类:① 等于0时,则将该头节点放到新数组时的索引位...

文章 2024-10-19 来自:开发者社区

让星星⭐月亮告诉你,HashMap中保证红黑树根节点一定是对应链表头节点moveRootToFront()方法源码解读

PS:由于文档是我在本地编写好之后再赋值过来的,有些文本格式没能完整的体现,故提供下述图片,供大家阅览,以便有更好的阅读体验: 红黑树根节点若不为其对应链表的头节点,则按照下述步骤的处理,将根节点向前移动到头节点: 将根节点从所在链表中删除,即链表的删除操作:...

让星星⭐月亮告诉你,HashMap中保证红黑树根节点一定是对应链表头节点moveRootToFront()方法源码解读
文章 2024-10-19 来自:开发者社区

让星星⭐月亮告诉你,HashMap之往红黑树添加元素-putTreeVal方法源码解读

PS:由于文档是我在本地编写好之后再复制过来的,有些文本格式没能完整的体现,故提供下述图片,供大家阅览,以便有更好的阅读体验: HashMap之往红黑树添加元素-putTreeVal方法源码解读 1、当要put的元素所在数组索引位置已存在元素,且是红黑树类型时,就会调用putTreeVal方法添加元...

让星星⭐月亮告诉你,HashMap之往红黑树添加元素-putTreeVal方法源码解读
文章 2024-10-19 来自:开发者社区

让星星⭐月亮告诉你,HashMap中红黑树TreeNode的split方法源码解读

PS:由于文档是我在本地编写好之后再复制过来的,有些文本格式没能完整的体现,故提供下述图片,供大家阅览,以便有更好的阅读体验: HashMap中红黑树TreeNode的split方法源码解读 分析HashMap$TreeNode(既是树又是链表)的split方法的源码,会发现主要分两部分操作: 1. 数据从...

让星星⭐月亮告诉你,HashMap中红黑树TreeNode的split方法源码解读

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。