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 接口规范