1、ArrayList概述
ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本。
ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复。
2、ArrayList源码分析
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
由此可以看出,ArrayList类继承自AbstractList
,实现了List, RandomAccess, Cloneable, Serializable
等接口。
首先我们来看构造方法:
//1.无参构造方法
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
//2.初始有容量的构造方法
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);
}
}
//3.传参集合的构造方法