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