属性

protected transient int modCount

记录修改次数,如果期望的修改次数和当前记录的次数不一致,抛出ConcurrentModificationException,使用快速失败机制防止对列表数组的结构性修改导致的操作异常

private static final int DEFAULT_CAPACITY = 10

默认的容量大小

默认空队列

image.png

transient Object[] elementData

数据存放缓存区
image.png

方法

Special方法,动态数组修改有很多地方使用到了这个方法
image.png

增加

private void grow(int minCapacity)

容量增加时,修改modCount
image.png
数组增加方法,默认扩容位原容量*1.5。并比较是否已经到达最大值
image.png

删除

public boolean remove(Object o)

删除方法通过重新赋值的形式实现
image.png
image.png

内部静态类

private class Itr implements Iterator

迭代器的优化方法,添加了快速失败判断方法

private class ListItr extends Itr implements ListIterator

迭代器

private class SubList extends AbstractList implements RandomAccess

子列表

static final class ArrayListSpliterator implements Spliterator

内部类描述 Index-based split-by-two, lazily initialized Spliterator,基于二分法的懒加载分割器

Q.E.D.


每一个平凡的日常都是连续的奇迹