`
寂地流年
  • 浏览: 27411 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ArrayList和LinkedList的比较

阅读更多

        ArrayList和LinkedList,这是Java中的动态数组和链表。动态数组其实比较简单,就是一个长度可以根据实际情况改变的数组。我们如果要查找某一个动态数组中的元素,可以通过get()方法来查找,只要知道该元素下标就可以了。
        而LinkedList,也就是链表,这个与我们所知道的一般链表稍有不同。一般的链表元素中,除了放这个结点的数据外,还指向下一个结点。一个指向下一个,就这样构成了链表。但是Java中的链表,除了放本来的数据和指向下一个结点外,还指向上一个结点。因此,Java中的LinkedList是双向的。那么有什么用呢?还有就是ArrayList和LinkedList有什么区别?
        这个就要从查找元素的效率和添加删除元素的效率来讲了。在动态数组中,如果我们要在某一个位置添加或者删除一个元素,剩下的每个元素都要相应地往前或往后移动。如果该动态数组中的元素很多,那么,每当我们添加或删除一个元素后,需要移动的元素就非常多,因此,效率就比较低。但是,如果我们使用LinkedList就不一样了。如果我们要在某一个位置添加一个元素,例如,要在A, C之间插入B。本来A是指向C,C也指向A的。现在,只需要将B放到A和C之间,同时让B向前指向A,向后指向C,并且让A从C指向B,让C从A指向B就可以了。如果该链表中元素非常多,我们只需做这个操作就可以了,并不需要移动剩下的元素。所以说LinkedList在添加和删除元素上的效率要比ArrayList高很多。而且,Java中有一个叫ListIterator的迭代器。该迭代器不仅可以向后迭代元素,还能向前迭代,而且还有add()来在某一位置添加元素,十分方便。不过说到查找效率的话就反过来了,是ArrayList的效率比LinkedList的效率高,因为你只要提供元素的下标即可。如果你不知道如何选择ArrayList和LinkedList,就从这两个方面来考虑就行了。 
      

分享到:
评论

相关推荐

    ArrayList和Linkedlist1

    在IT领域,特别是Java编程中,ArrayList和LinkedList是两种非常重要的数据结构,它们都是List接口的实现类。理解这两者的区别对于优化程序性能至关重要。面试官询问这些知识点,旨在评估应聘者的理论基础和实践能力...

    测试ArrayList和LinkedList的add方法

    测试ArrayList和LinkedList的add方法

    Java中ArrayList和LinkedList区别 时间复杂度 与空间复杂度1

    在 Java 中,ArrayList 和 LinkedList 是两种常用的集合类,它们各自具有不同的特性和适用场景,主要体现在数据结构、访问效率和操作性能上。 1. 数据结构: - ArrayList 实现了一个动态数组,它内部是一个 Object...

    【Java面试题】ArrayList和LinkedList区别

    【Java面试题】ArrayList和LinkedList区别

    关于arraylist和linkedList的区别

    ### 关于ArrayList与LinkedList的区别 在Java编程语言中,`ArrayList`与`...综上所述,在选择使用`ArrayList`还是`LinkedList`时,需要根据具体的使用场景和需求来决定,以便在内存占用、操作速度等方面达到最佳平衡。

    ArrayList LinkedList Vector区别

    ArrayList 和 LinkedList 都可以用于实现堆栈、队列或双向队列等数据结构。 Collection 接口是 Java 中最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素(Elements)。Collection 接口...

    Java中ArrayList和LinkedList区别

    - 对于顺序遍历,LinkedList和ArrayList的性能相近,因为都需要逐个访问元素。 - 如果需要频繁插入、删除并同时遍历,LinkedList可能更适合,因为它在这些操作上的开销小。 6. 适用场景: - 当需要频繁的随机...

    ArrayList LinkedList Vector性能对比

    ArrayList、LinkedList和Vector是三种常见的动态数组实现,它们各自有特定的特性和使用场景。这里我们将深入探讨这三个类的性能对比,以及它们在不同操作下的表现。 ArrayList是基于动态数组实现的,它提供了随机...

    05丨ArrayList还是LinkedList?使用不当性能差千倍.html

    05丨ArrayList还是LinkedList?使用不当性能差千倍.html

    当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮

    今天,我们将深入探讨这两个集合类的实现原理和比较。 ArrayList 的实现原理 ArrayList 是基于数组实现的,它的底层存储结构是一个数组,用于装载数据。ArrayList 的默认容量是 10,但是这只是数组的容量大小,而...

    比较ArrayList、LinkedList、Vector1

    List接口的实现类主要有ArrayList、LinkedList和Vector。 2. **ArrayList** - **实现原理**:ArrayList基于动态数组实现,它提供快速的按索引访问,因为数组支持直接通过索引获取元素。 - **添加和删除**:对于在...

    arraylist-linkedlist-test.zip

    ArrayList和LinkedList是Java集合框架中两种重要的动态数组实现,它们都是List接口的实现类,但它们在存储和操作数据方面有着显著的区别。本文件"arraylist-linkedlist-test.zip"主要探讨了在执行添加和删除元素操作...

    10.ArrayList 和LinkedList的区别.avi

    10.ArrayList 和LinkedList的区别.avi

    ArrayList LinkedList Vector性能测试

    在Java编程语言中,ArrayList、LinkedList和Vector是三种常见的动态数组实现,它们都在java.util包中,用于存储和管理对象的集合。这三个类都实现了List接口,提供了多种操作方法,但它们在内部实现和性能特性上有所...

    合理运用ArrayList与LinkedList

    第二个代码示例则比较了从ArrayList和LinkedList中读取100000个元素的时间。在ArrayList中,由于元素存储连续,直接按索引访问几乎瞬间完成。然而,当使用LinkedList时,由于需要从头开始遍历链表,耗时显著增加。 ...

    ArrayList-LinkedList-源码.rar

    在Java编程中,ArrayList和LinkedList是两种常见的动态数组,它们都是Java集合框架的一部分,提供了对元素存储和操作的功能。本篇将深入探讨ArrayList和LinkedList的内部实现机制,通过源码分析来揭示它们在性能、...

    对ArrayList和LinkedList底层实现原理详解

    ArrayList 和 LinkedList 的比较: 1. 内存占用:ArrayList 占用内存少于 LinkedList,因为 ArrayList 是基于数组实现的,而 LinkedList 是基于链表实现的。 2. 查询效率:ArrayList 的查询效率高于 LinkedList,...

    Arraylist与LinkedList区别

    2,随机访问的时候,ArrayList的效率比较高,因为LinkedList要移动指针,而ArrayList是基于 3,索引(index)的数据结构,可以直接映射到。 4,插入、删除数据时,LinkedList的效率比较高,因为ArrayList要移动数据。 ...

    ArrayList 和LinkedList各自的特点是什么

    通过对比`ArrayList`和`LinkedList`,我们可以看到两种集合类各有优势: - **`ArrayList`**:适用于需要频繁进行随机访问且对插入删除操作次数较少的场景。例如,在处理大量数据并经常需要根据索引进行查询的情况下...

    arraylist和linkedlist的时间复杂度

    arraylist 和linked list的时间复杂度

Global site tag (gtag.js) - Google Analytics