public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable 1. 1.1 ArrayList的常量 ArrayList 类中,定义了3个常量,官方解释如下: /** * Default initial capacity. * * 默认初始化容量,10 */ private static final int DEFAULT_CAPACITY = 10; /...
21 * The capacity of the ArrayList is the length of this array buffer. Any 22 * empty ArrayList with elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA 23 * will be expanded to DEFAULT_CAPACITY when the first element is added. 24 */ 25 transient Object[] elementData; // 非私有,以简化嵌套类...
在聊ArrayList的初始化容量时,要先来回顾一下HashMap的初始化容量。这里以Java 8源码为例,HashMap中的相关因素有两个:初始化容量及装载因子:/** * The default initial capacity - MUST be a power of two. */static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16/** * The load fact...
}privatestaticintcalculateCapacity(Object[] elementData,intminCapacity){// 计算新容量if(elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {// 代表elementData数组还是一个空数组,没有任何数据returnMath.max(DEFAULT_CAPACITY, minCapacity);// elementData为空时,会扩容到DEFAULT_CAPACITY = 10和minCapacity的最...
* 符合 DEFAULTCAPACITY_EMPTY_ELEMENTDATA 的注释说明 * private static int calculateCapacity(Object[] elementData, int minCapacity) 这个方法里可以看出 **/publicArrayList() {this.elementData =DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }/*** 构造一个包含指定元素的列表集合 ...
ten.*/publicArrayList(){this.elementData=DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}此处肯定有朋友说,Java 8...
在聊ArrayList的初始化容量时,要先来回顾一下HashMap的初始化容量。这里以Java 8源码为例,HashMap中的相关因素有两个:初始化容量及装载因子: 复制 /*** The default initial capacity - MUST be a power of two.*/staticfinalintDEFAULT_INITIAL_CAPACITY=1<<4;// aka 16/*** The load factor used when...
int minExpand = (elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA) ? 0: DEFAULT_CAPACITY; //如果最低所需的容量大于容器初始的最小容量,去调用扩容的方法,这里就体现出了两个不同常量的作用 if (minCapacity > minExpand) { ensureExplicitCapacity(minCapacity); } } /** * 计算最小所需容量 */ priv...
intminCapacity){// eg1:第一次新增元素,calculateCapacity方法返回值为DEFAULT_CAPACITY=10ensure...
* will be expanded to DEFAULT_CAPACITY when the first element is added. */transient Object[]elementData;// non-private to simplify nested class access 6.数组长度 size 属性源码: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 /**