ArrayList底层是数组结构,为一片连续空间,按数组下标读(读取速率快),增删操作慢,如果要进行增删操作,如果需要增删的元素在数组下标较小(即在数组最前方部分),则需要移动后方的所有数据。 极有可能触发GC,阻断所有的线程。
LinkedList底层的存储结构为链表,非连续内存空间,其前后元素是由指针连接,读取操作效率相对数组低。增删操作效率高,把前一元素的尾指针指向新元素,新元素的尾指针指向后一个元素即可完成增操作,删除一样的原理
![](https://i-blog.csdnimg.cn/blog_migrate/5ccbd6b0b419654924f2b3f9b3a33c7b.png)
ArrayList底层是数组结构,为一片连续空间,按数组下标读(读取速率快),增删操作慢,如果要进行增删操作,如果需要增删的元素在数组下标较小(即在数组最前方部分),则需要移动后方的所有数据。 极有可能触发GC,阻断所有的线程。
LinkedList底层的存储结构为链表,非连续内存空间,其前后元素是由指针连接,读取操作效率相对数组低。增删操作效率高,把前一元素的尾指针指向新元素,新元素的尾指针指向后一个元素即可完成增操作,删除一样的原理