特征
底层结构是数组,查询速度相对性快一些
初始容量为10 private static final int DEFAULT_CAPACITY = 10;
扩容
关于扩容扩容为底层的0.5倍,如图,内部是位移了右移了1,加上本身的值
每次扩容需要操作的数据数原本数组长度的2倍加一进行的,扩容所带来的消耗性能是比较大的
移除数据
移除数据是传入的参数是有两种的,一种是下标,一种是对象的值
其中如果传输的是对象的值则会调用fastRemover,先根据其值获得下标再进行删除
计数
modCount变量用于记入当前的的值,expectedModCount保存进行时候的会进行的赋值操作
一般我们要作用于修改/删除操作需要移动元素,为了保持其数据不会出现问题而有了modCount,因为其有failFast机制(快速失败),当他们值不一致时会进行报错处理ConcurrentModificationException(并发修改异常)