完整教程:ArrayList和LinkedList的区别是什么?

什么?就是ArrayList和LinkedList的区别

  1. 底层的数据结构

    1. ArrayList底层是使用动态数组实现的
    2. 采用双向链表建立的就是LinkedList底层
  2. 操作素材的效率

    1. ArrayList按照索引查询的时候,时间复杂度是O(1),LinkedList不支持下标查询

    2. 在不知道索引的情况下查询,这两个都是O(n)

    3. 新增和删除

      1. O(n)就是ArrayList在尾部插入或删除,时间复杂度是O(1),其他都
      2. LinkedList在头尾进行运行的时候时间复杂度是O(1),其他是O(n)
  3. 内存的占用

    1. ArrayList底层是数组,内存连续更加节省内存
    2. LinkedList底层是双向链表,需要存数据和2个指针,更加占用内存
  4. 线程安全

    1. ArrayList和LinkedList都不是线程安全的

    2. 解决方案

      1. 尽量在办法内使用,局部变量是线程安全的
      2. 使用线程安全的ArrayList和LinkedList

posted on 2025-11-08 10:38  blfbuaa  阅读(10)  评论(0)    收藏  举报