JAVA集合框架中存放一种相同类型元素的数据,是一种变长的数据集合,基于定长数组实现。当加入数据达到一定程度后,会实现数组扩容,即扩大数组大小。
底层使用数组实现,添加元素。
如果使用add(o),添加到数组尾部,如果数据量很大应该使用ensureCapacity()方法,该方法的作用是预先设置ArrayList的大小,这样可以大大提高初始化速度。
如果使用add(int,o)在某个位置添加元素,那么就可能会挪到大量数组元素,可能会触发大量扩容机制。
高并发情况下,线程不安全,多个线程同时操作ArrayList,可能会引发不可预见的异常或错误。
ArrayList实现了CloneAble接口,标志着它可以被复制。注意ArrayList里面的clone()是浅复制。