private static finalObject[]DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; EMPTY_ELEMENTDATA:共享的空数组实例用于空实例。 DEFAULTCAPACITY_EMPTY_ELEMENTDATA:共享的空数组实例用于默认大小的空实例。我们将其与EMPTY_ELEMENTDATA区分开,以便在添加第一个元素时知道要扩容多少。 总结:EMPTY_ELEMENTDATA表示容量为0的空ArrayList...
}/*** 这里属于针对初始化时的扩容判断 当为DEFAULTCAPACITY_EMPTY_ELEMENTDATA 时说明是无参构造函数创建的,则可以直接扩容为DEFAULT_CAPACITY也就是10为初始容量*/privatestaticintcalculateCapacity(Object[] elementData,intminCapacity) {if(elementData ==DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {returnMath.max(DEFAULT_C...
数组为EMPTY_ELEMENTDATA就走基于用户设置大小值进行1.5倍扩容(这里是空所以是0),数组为默认空DEFAULTCAPACITY_EMPTY_ELEMENTDATA就会走基于默认值的大小10扩容进行1.5倍扩容。 核心代码:如果是默认初始化空容量会走 if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) { minCapacity = Math.max(DEFAULT_CAPACITY, mi...
于是便要扩容,在扩容之前,有一个确定增长后的数组大小的函数 之前的源码不贴了,无论哪种方法,来这里minCapacity都是1 privatestaticintcalculateCapacity(Object[] elementData,intminCapacity){if(elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {returnMath.max(DEFAULT_CAPACITY, minCapacity); }returnminCapacity;...
*/privatestaticfinalObject[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; 这两个类常量EE和DEE都是表示空数组,只是名字不一样而已。 三个构造函数: /** * 有参 */publicArrayList(intinitialCapacity){if(initialCapacity >0) {this.elementData =newObject[initialCapacity]; ...