HashMap源码分析

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 21:03   4021   0

转自:HashMap源码分析

需要提到的是,HashMap内部的容量设计为2的幂,是为了方便扩容和取余运算,都只需要采用二进制位运算即可

1.扩容:newCapacity <<= 1;

2.取余:当Length=2^n时,hash%Length=hash&(Length-1)

学过数论的应该知道,取余运算相对耗时,而把除数设计为2的幂可以简化为按位与运算从而提高程序计算速度。



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP