(此内容源自B站阿玮老师)
下图为迭代器的底层代码分析,看懂这个代码就可以知道迭代器遍历的原理和为什么会出现并发修改异常了.
并发修改异常,在Itr中,会用modCount记录当前集合变化的次数,一旦集合在遍历过程中发生变化,与原来记录的数据不一致,便会报错.
下图为LinkedList底层添加代码的逻辑,它的本质上是链表结构,通过记录头结点和尾结点的方式,查询增删改查集合,这也导致其增删改查性能良好,查询速度慢.
下图是ArrayList集合添加元素的底层逻辑
它的底层是通过创建一个数组实现的,添加第一个元素的时候创建一个长度为10的数组,之后每次满了扩容1.5倍,如果1.5倍还不够就扩充到实际需要的长度,再将原有的数据拷贝到新数组中.