HashMap中Capacity为数组长度,默认大小为16,size为元素个数,loadFactor为size/capacity,默认为0.75,当存储的元素个数size和capacity比如大于0.75时,hashMap开始按照2的次幂扩容。
元素存放的位置算法:所以我们首先想到的就是把hashcode对数组长度取模运算,这样一来,元素的分布相对来说是比较均匀的。但是,“模”运算的消耗还是比较大的,能不能找一种更快速,消耗更小的方式那?java中时这样做的,
Java代码
- static int indexFor(int h, int length) {
- return h & (length-1);
- }