ArrayList扩容机制

Java基础 Java集合

总的来说,ArrayList扩容机制分为以下步骤

  1. 无参初始化:初始化默认长度为10的列表(创建时为空,添加第一个元素才扩充至10) 有参初始化:初始化指定长度的列表 有参:包含指定collection元素的列表
  2. 添加元素:如果没有占满列表则直接添加。如果占满了,用grow()方法扩容至newCapacity = oldCapacity + (oldCapacity >> 1)
  3. 判断新容量大小:如果新容量大小大于MAX_ARRAY_SIZEInteger.MAX_VALUE-8,则比较MAX_ARRAY_SIZEminCapacity。如果minCapacity大于最大容量,则新容量为Integer.MAX_VALUE,否则新容量大小为MAX_ARRAY_SZIE