美文网首页
ArrayList、LinkedList对比分析

ArrayList、LinkedList对比分析

作者: 有腹肌的豌豆Z | 来源:发表于2020-09-13 11:54 被阅读0次
  • 上述的对比都是基于大数据量的情况下,如果只是几个元素或几十个元素,它们之间并没有多大区别。
  • Q:插入效率为何说正常情况下ArrayList低,LinkedList高呢?
  • A:我们清楚ArrayList之所以插入效率低,有两个原因会造成时间的消耗。
    第一,当底层数组空间不足时需要扩容,扩容后需进行数组拷贝
    第二,当不在数组末尾插入数据,那么就需要移动数组元素
    知道了其插入效率低的原因后,那么很明显,数据扩容及拷贝只有在数组空间不足时才发生,如果我们正确使用,就像《阿里巴巴Java开发手册》中提到我们在创建集合对象时,就传递参数预先设置好数组大小,那么插入效率是非常高的;而90%的情况下我们在添加元素时都调用的是add(E e),直接在末尾添加元素,很少调用add(int index, E e)在数组中部添加元素,这样其实移动数组元素就很少发生,因此插入效率也很高。
  • Q:删除效率为何说正常情况下ArrayList低,LinkedList高呢?
  • A:因为删除效率高、低不是绝对的。其实删除操作可以分为两部分。
    第一:找到要删除的元素,这个通过索引找,ArrayList的执行效率要远高于LinkedList的执行效率;通过equals找则需要遍历整个集合,ArrayList和LinkedList执行效率基本一致。
    第二:删除元素及后续操作,这个如果删除是最后一个元素,执行效率基本一致;如果是删除的中间元素,那么ArrayList需进行数组元素移动,而LinkedList只需搭建起该元素的上一个节点和下一个节点的关系即可,LinkedList执行效率高于ArrayList。
    因此,需根据实际情况才可判断实际的执行效率。
  • Q:遍历效率这个问题怎么说?
  • A:ArrayList通过数组实现,天然可以通过数组下标读取数据,顺序遍历、随机遍历效率都非常高;LinkedList通过双向链表实现,顺序遍历时,可直接通过本节点.next()直接找到相关联的下一个节点,效率很高,而如果LinkedList随机遍历时,首先需判断(传递的索引值与集合长度/2)的大小,来确定接下来是应该从第一个节点开始找还是最后节点开始找,越是靠近集合中部、集合越大,随机遍历执行效率越低。

相关文章

  • Java基础

    常见对比 ArrayList, LinkedList, Vector ArrayList 基于动态数据,1.5倍扩...

  • ArrayList、LinkedList对比分析

    上述的对比都是基于大数据量的情况下,如果只是几个元素或几十个元素,它们之间并没有多大区别。 Q:插入效率为何说正常...

  • Java (集合 List)

    1.对比Arraylist (插入顺序)和 LinkedList(插入顺序) 特性: ArrayList(末尾附近...

  • Java中级面试题

    List和Set比较,各自的子类比较对比一:Arraylist与LinkedList的比较 1、ArrayList...

  • 搞懂 Java HashMap 源码

    HashMap 源码分析 前几篇分析了 ArrayList , LinkedList ,Vector ,Stack...

  • HashMap 源码分析

    前言 前面分别分析了常用的 ArrayList 和 LinkedList 的源码,前面讲了 ArrayList 内...

  • (二):集合框架List

    1.对比 Vector、ArrayList、LinkedList 有何区别? Vector 是 Java 早期提供...

  • ArrayList 、LinkedList、Vector的区别

    ArrayList 、LinkedList、Vector的区别 ArrayList、LinkedList、Vect...

  • ArrayList和LinkedList对比

    ~、结构 ArrayList位数组结构,LinkedList为双向链表结构。 ~、空间 ArrayList有固定容...

  • LinkedList、ArrayList分析

    List 是重要的数据结构之一。最常用的的便是: ArrayList、Vector 和 LinkedList 三种...

网友评论

      本文标题:ArrayList、LinkedList对比分析

      本文链接:https://www.haomeiwen.com/subject/hjyfektx.html