要求

    • 能够说清楚 LinkedList 对比 ArrayList 的区别,并重视纠正部分错误的认知

    LinkedList

    1. 基于双向链表,无需连续内存
    2. 随机访问慢(要沿着链表遍历)
    3. 头尾插入删除性能高
    4. 占用内存多(一个节点对象包括pre/next指针和数据本身)

    ArrayList

    1. 基于数组,需要连续内存
    2. 随机访问快(指根据下标访问)
    3. 尾部插入、删除性能可以,其它部分插入、删除都会移动数据,因此性能会低
    4. 可以利用 cpu 缓存,局部性原理