resize方法过程
在前一篇put方法的文章中,有提到过如下
如果我们当前的元素数量大于阈值就会发生扩容。扩容后的容量大小为扩容前的2倍。
来看一下resize方法
void resize(int newCapacity) {
//这里获取老table的长度,如果老table的长度已经是最大的容量了,那就没必要扩容了,直接返回。
Entry[] oldTable = table;
int oldCapacity = oldTable.length;
if (oldCapacity == MAXIMUM_CAPACITY) {
threshold = Integer.MAX_VALUE;
return;
}
//如果可以扩容,则new一个新的数组
Entry[] newTable = new Entry[newCapacity];