HashMap objectObjectHashMap =new HashMap<>(10);
知道当你在写这行代码时,这个hashmap的初始大小是多少吗?
10?还是16?接下来上源码
static final int tableSizeFor(int cap) {
int n = cap -1;
n |= n >>>1;
n |= n >>>2;
n |= n >>>4;
n |= n >>>8;
n |= n >>>16;
return (n <0) ?1 : (n >=MAXIMUM_CAPACITY) ?MAXIMUM_CAPACITY : n +1;
}
这个方法通过位移结合位运算来实现,hashmap的长度设置的
知识点:
网友评论