ArrayList

1.ArrayList概述
    ArrayList是一个实现了List接口的有序数组集合,它允许Null元素,ArrayList初始化时会有一个默认大小,也可以手动构造指定大小,当ArrayList容量自动增长时,会将原数组(Arrays.copyOf)重新copy到新数组,如果是要添加可预知大数据量时,则应指定数组的长度,也可以使用arrayList.ensureCapacity(size)方法指定容器的大小,减少在递增容器容量带来的开销。
2.ArrayList的实现原理
底层采用数组实现,如下
private transient Object[] elementData;

3.相关方法
  public ArrayList(Collection<? extends E> c) {
	elementData = c.toArray();
	size = elementData.length;
	//c.toArray might (incorrectly) not return Object[] (see 6260652)
if (elementData.getClass() != Object[].class)
	    elementData = Arrays.copyOf(elementData, size, Object[].class);
    }

研究源码时无意间发现//c.toArray might (incorrectly) not return Object[] (see 6260652),当toArray转化失败后,用Arrays.copyOf补救,可能是JDK1.5版本未能解决的一个BUG吧
其它方法都比较简单,一些对数组的简单操作

你可能感兴趣的:(ArrayList)