原创作品,可以转载,但是请标注出处地址:
一、概述
ArrayList是Java集合体系中最常使用,也是最简单的集合类,是以数组实现的线性表。
数组在内存中是以一段连续的内存来进行存放的,同样,ArrayList也是如此,初始化时可以指定初始容量,也可以以默认容量(10)创建底层数组,由于ArrayList属于可变长列表,采用可变数组实现,数组本身是不变的,一旦定义就无法变长,可变数组使用创建新数组拷贝旧数据的方式间接实现可变长,习惯称为扩容。
ArrayList底层数组的扩容算法依据的是一个扩容算法来计算新的数组长度,扩容的条件是当前底层数组不足以容纳新的元素。
二、继承结构
ArrayList的类结构如下所示:
三、底层实现
3.1 底层结构
如前所述,ArrayList底层采用的是数组结构。
1 private transient Object[] elementData;