HashMap、哈希冲突、扩容与树化 | JavaSE
本章覆盖:HashMap 的数组 + 桶结构;hash 与索引定位的基本思想;put / get 的核心查找流程;哈希冲突与链式结构;负载因子与扩容;JDK 8+ 桶树化的概念;equals/hashCode 对 Map 键的要求;HashMap 非线程安全;容量保持 2 的幂、hash 扰动与索引计算的 JDK 21 实现思路;threshold、capacity、loadFactor 的关系;树化阈值、最小树化容量与退化为链表的实现级边界;扩容后元素索引迁移的 JDK 21 实现思路;null key / null value 与 HashMap API 语义;HashMap 源码细节必须明确标注为 JDK 21 实现,而不是 Map 接口规范。
本章知识点
- HashMap 的数组 + 桶结构
- hash 与索引定位的基本思想
- put / get 的核心查找流程
- 哈希冲突与链式结构
- 负载因子与扩容
- JDK 8+ 桶树化的概念
- equals/hashCode 对 Map 键的要求
- HashMap 非线程安全
- 容量保持 2 的幂、hash 扰动与索引计算的 JDK 21 实现思路
- threshold、capacity、loadFactor 的关系
- 树化阈值、最小树化容量与退化为链表的实现级边界
- 扩容后元素索引迁移的 JDK 21 实现思路
- null key / null value 与 HashMap API 语义
- HashMap 源码细节必须明确标注为 JDK 21 实现,而不是 Map 接口规范