为什么在HashMap中数组的长度length = 2^n(初始值为16),即2的n次 ?
当计算索引值index = h % length 由于计算机的取余操作速度很慢,而计算机的按位取余 & 的操作非常快,又因为 h%length = h & (length-1) (需要满足length = 2^n) 因此规定了length = 2^n 加快index的计算速度,因此是利用了计算机本身的计算特性
为什么在HashMap中数组的长度length = 2^n(初始值为16),即2的n次 ?
当计算索引值index = h % length 由于计算机的取余操作速度很慢,而计算机的按位取余 & 的操作非常快,又因为 h%length = h & (length-1) (需要满足length = 2^n) 因此规定了length = 2^n 加快index的计算速度,因此是利用了计算机本身的计算特性