1.通过无参构造器使用ArrayList的源码剖析
2.通过有参构造器使用ArrayList的源码剖析
1.创建指定大小的element数组: this.elementData = new Object[指定的大小];
public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
this.elementData = EMPTY_ELEMENTDATA;
} else {
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
}
2.添加元素的操作与无参构造相同(同上)
3.只是在扩容的时候,会直接扩容为定义数组大小的1.5倍
private void ensureCapacityInternal(int minCapacity) {
ensureExplicitCapacity(calculateCapacity(elementData, minCapacity));
}
private void ensureExplicitCapacity(int minCapacity) {
modCount++;
// overflow-conscious code
if (minCapacity - elementData.length > 0)
grow(minCapacity);
}