ArrayList
ArrayList是接口List的主要实现类,List点击打开链接
ArrayList使用数组来储存元素,默认情况下,定义一个长度为10的数组。如果需要扩充数组,则容量扩充为old capacity * 3 /2 + 1,(old capacity:原来的数组容量)
Object[] elementData集合贮存元素的数组
int size 集合包含元素的数量
一、添加元素
modCount值加1,
当elementData的容量不够时,创建一个长度为(old capacity * 3 /2 + 1)的新数组,
把原数组的元素复制到新数组,把元素追加到新数组,
size值加1。
二、添加元素e到指定的位置index
modCount值加1,
如果添加元素后的容量(size + 1)超出当前数组的长度,当先扩容数组的长度,
把元素elementData[index],...,elementData[size - 1]移动到下标为index+1,...,size的位置。
把元素e放在elementData[index],
size值加1。
三、删除指定的位置index的元素
modCount值加1,
把元素elementData[index + 1],...,elementData[size - 1]移动到下标为index,...,(size- 2)的位置。
设置elementData[size - 1]为null,
size值减1。
四、清空元素
modCount值加1,
把位置0,...,(size- 1)的元素都设为null,
size值设为0。