HashMap扩容时会扩为2倍,此外,当创建 HashMap 并指定一个初始容量(比如 new HashMap(10))时,HashMap 内部会也自动将这个容量调整为大于等于指定值的最小2的幂。
扩容采用2的幂次是为了优化哈希计算效率。具体原理如下:
先计算当前key的hash值,当 HashMap 容量为16时,计算槽位的方式为 hash & (16-1),即 hash & 15。由于15的二进制只有最后4位是1(0000 1111),因此计算结果的有效部分仅为哈希值的最后4位,这4位就决定了键值对存放的槽位索引。
2025/12/11...大约 1 分钟