HashMap的容量为什么是2的幂次方?
在1.7的实现中,有个indexFor方法,是计算entry在table中的下标,采用了与运算,并且这个table数组的长度一定要是2的幂次方,一是为了能够使entry均匀分布在各个index上,二是与运算操作计算更快static int indexFor(int h, int length) { return h & (length-1);}先来看2的幂次方对应的二进制(按8位 补0过后)2 0000 00104 0000 01008 0000 100016 0001 000.
原创
2021-04-09 22:58:54 ·
159 阅读 ·
0 评论