这样做有两个好处:
第一,可以通过(table.length - 1) & key.hash()这样的位运算快速寻址,
第二,在HashMap扩容的时候可以保证同一个桶中的元素均匀的散列到新的桶中,
具体一点就是同一个桶中的元素在扩容后一半留在原先的桶中,一半放到了新的桶中。
HashMap内部的bucket(桶)数组长度为什么一直都是2的整数次幂?
发布时间 2023-04-14 11:46:50作者: 18sui
这样做有两个好处:
第一,可以通过(table.length - 1) & key.hash()这样的位运算快速寻址,
第二,在HashMap扩容的时候可以保证同一个桶中的元素均匀的散列到新的桶中,
具体一点就是同一个桶中的元素在扩容后一半留在原先的桶中,一半放到了新的桶中。