一文读懂HashMap和HashTable的区别以及常见面试题(16)



\n

扩容

\n

final Node<KV>[
resize() {
       Node<KV>[
oldTab = table;
       int oldCap = (oldTab == null) ? 0 : oldTab.length;
       int oldThr = threshold;
       int newCap newThr = 0;        if (oldCap > 0) {            //如果原容量大于最大空间 , 则让阈值为最大值 。 因为不能再扩容了 , 最大容量就是整数最大值 。
           if (oldCap >= MAXIMUM_CAPACITY) {
               threshold = Integer.MAX_VALUE;                return oldTab;
                       //两倍扩容 , 阈值也跟着变为两倍
           else if ((newCap = oldCap << 1) < MAXIMUM_CAPACITY &&

推荐阅读