ArrayList的扩容机制:
当向ArrayList中添加元素的时候,ArrayList的存储容量如果满足新元素的容量要求,则直接存储;ArrayList的存储容量如果不满足新元素的容量要求,ArrayList会增强自身的存储能力,以达到存储新元素的要求。
因为不同的JDK版本的扩容机制可能有差异,下面以JDK1.8为例说明
一、构造方法
public ArrayList(int initialCapacity) {if (initialCapacity > 0) {this.elementData =new Object[initialCapacity]; }elseif (initialCapacity == 0) {this.elementData = EMPTY_ELEMENTDATA; }else {thrownew IllegalArgumentException("Illegal Capacity: "+ initialCapacity); } }/** * Constructs an empty list with an initial capacity of ten. * ArrayList():并不是在初始化ArrayList的时候就设置初始容量为空,而是在添加第一个元素时,将初始容量设置为10(DEFAULT_CAPACITY)。 * 在jdk1.6中,无参构造方法的初始容量为10*/public ArrayList() {this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }public ArrayList(Collection