先看下他们的源码是怎么定义内部数据存储的: 这是ArrayList的定义,他首先定义了他的初始化容量为10 这里应该看到了数据存储是放在Object数组里的定义了数据的 过程主要涉及到两步操作:ArrayList中数组扩容;赋值;数组扩容的过程如下: (1)计算新的容量; (2)将数组元素进行拷贝到扩容后的数组; 如下面的代码所示: 上面...
如果实际容量为100,加载因子1,则计算工式为:(int) (100 / 1) + 1 = 101,则则实例化HashMap为 new HashMap<>(101, 1) (注意:由于HashMap的容量必须为2的N次方,故此时HashMap的实际容量为128) HashMap、HashMap加载因子0.75,初始容量16,扩容增量为原来的1倍 注意:加载因子越大节省内存但查找效率低,加...
public class ArrayListCapacityTest { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); System.out.println("capacity: " + getCapacity(arrayList) + " size: " + arrayList.size()); arrayList.add("test"); System.out.println("capacity: " + getCapacity(arrayList) ...
如果实际容量为100,加载因子1,则计算工式为:(int) (100 / 1) + 1 = 101,则则实例化HashMap为 new HashMap<>(101, 1) (注意:由于HashMap的容量必须为2的N次方,故此时HashMap的实际容量为128) HashMap、HashMap加载因子0.75,初始容量16,扩容增量为原来的1倍 注意:加载因子越大节省内存但查找效率低,加...