曹耘豪的博客

Java基础之ArrayList和LinkedList的原理和使用场景

  1. ArrayList
  2. LinkedList
  3. 实现和复杂度对比
  • | 类型 | ArrayList | LinkedList || —
  • | —
  • | —
  • ArrayList

    LinkedList

    实现和复杂度对比

    | 类型 | ArrayList | LinkedList |
    | —


    | —





    | —



    – |
    | 实现方式 | 动态数组 | 双向链表 |
    | 内存分步 | 连续 | 不连续 |
    | 查询效率 | O(n) | O(n) |
    | 随机访问效率 | ***O(1)***,下标访问 | *O(n)*,遍历至指定位置 |
    | 随机增加/删除效率 | *O(n)*,需移动数组,但很快 | *O(n)*,遍历找到节点 |
    | 头部添加删除效率 | *O(n)*,需移动后续数组 | O(1) |
    | 尾部添加删除效率 | *O(1)*,添加时可能需要扩容数组 | O(1) |

       /