ArrayDeque
一、定义
1 | public class ArrayDeque<E> extends AbstractCollection<E> |
ArrayDeque 实现了 Deque 接口,是一个数组实现的双向队列。
二、原理
2.1 数据结构
ArrayDeque 底层数据存储结构是数组:
AbstractList 是一个抽象类,是一个 List。
1 | public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> { |
在 AbstractList 中,有一个特殊的属性 modCount,用于统计列表被修改的次数(例如删除、添加等)。
1 | protected transient int modCount = 0; |
modCount 属性的作用是为了在并发修改列表时,能够快速失败(fail-fast)并抛出并发异常。例如多个线程同时修改列表时,就有可能对正在访问列表元素的线程造成影响,modCount 属性可用于判断当前列表是否是异常状态。