目录
ArrayList是Java集合框架中的一个核心类,它实现了List接口,是一个动态数组。ArrayList允许存储任意类型的对象,包括null。它的内部实现基于数组,因此随机访问(通过索引)元素非常快速,但在列表的中间位置插入或删除元素时可能会相对较慢,因为需要移动其他元素以保持连续性。
List接口的实现类ArrayList,在jdk8中的继承关系如下。
public abstract class AbstractCollection implements Collection
public abstract class AbstractList extends AbstractCollection implements List
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable
数组
ArrayList内部使用一个动态数组elementData来存储元素。这个数组在创建ArrayList时初始化,并随着元素的添加而动态扩容。
private transient Object[] elementData;
大小
size变量用来跟踪ArrayList中当前元素的数量。
private int size;