了HashMap 长度为何是 2 的 n 次方,核心原因包括:

提升哈希算法效率当容量为 2 的幂时,计算元素位置的哈希值只需通过位运算(h & (length-1))替代取模运算,显著提升效率。

减少哈希冲突概率2 的幂次方长度能让哈希值分布更均匀,降低不同键哈希值碰撞的可能性,保证数据存储和访问的高效性。

扩容机制的需要HashMap 扩容时,容量会翻倍(即变为原来的 2 的幂次方),扩容后的新容量是原容量的两倍,所以位运算(hash & (newCapacity - 1))仍然可以高效地计算索引位置。这种扩容策略减少了在扩容过程中重新计算索引位置的开销。

利用位运算快速计算索引、简化扩容过程和减少哈希冲突,从而提高HashMap的性能和效率。