当前位置:   article > 正文

ArrayList 和 LinkedList 的区别_linkedlist arraylist 顺序

linkedlist arraylist 顺序

一、ArrayList 和 LinkedList 的区别

  1. ArrayList 底层是顺序表(基于数组),LinkedList 是链表。
  2. ArrayList 数据存放的内存空间是连续的,LinkedList 数据存放的内存空间是不连续的。
  3. a、 ArrayList 随机访问数据是高效的,根据下标访问数据时间复杂度为O(1);
    b、LinkedList 随机插入或删除数据是高效的,时间复杂度为O(1),但是,在 add 方法中,通过下标来访问数据的时间复杂度为O(n)。
  4. a、ArrayList 在初始化的时候,需要 capacity 参数来指定最大容量,当 add 尾插时,元素个数小于 capacity,效率都高且时间复杂度为O(1);当元素个数达到 capacity 时,就得进行扩容操作(申请一个大的内存空间,将原数据搬运过来,再释放原来的内存) ;
    b、LinkedList 没有capacity 这一说法,而且是需要一个内存就可以申请一个内存。
  5. ArrayList 比较害怕内存碎片,而 LinkedList 不需要担心内存碎片问题。

二、ArrayList 和 Vector

  1. Vector 是老版本的顺序表,ArrayList 是新版本的顺序表
  2. Vector 是线程安全的(效率低),ArrayList 是线程不安全的(效率高)
  3. 现在不太建议使用 Vector,更建议使用 JUC(java.util.C…)里的组件
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/715538
推荐阅读
相关标签
  

闽ICP备14008679号