爪哇中ArrayList和LinkedList之间的区别

常见的面试问题之一是“ArrayList和LinkedList有什么区别”在我们真正看到差异之前,请先简要介绍一下两者。

数组列表

  • 数组列表是列表接口的实现。
  • 数组列表未同步(因此不是线程安全的)
  • 数组列表是使用数组作为内部数据结构实现的,可以动态调整大小。

链表

  • 链表是列表和双端队列接口的实现。
  • 链表不同步
  • 链表是使用双链表作为内部数据结构实现的。

数组列表与LinkedList:

参数
数组列表
链表
内部数据结构
它使用动态数组在内部存储元素
它使用双链表在内部存储元素
操纵
如果我们需要在ArrayList中插入或删除元素,则可能需要O(n),因为它在内部使用数组,在插入或删除的情况下我们可能必须移动元素
如果我们需要在LinkedList中插入或删除元素,它将使用O(1),因为它内部使用了双重LinkedList
搜索
在ArrayList中搜索更快,因为在内部使用基于索引的数组。所以这里的时间复杂度是O(1)
由于在内部使用双重链接列表,因此在LinkedList中搜索速度较慢,因此此处的时间复杂度为O(n)
介面
数组列表仅实现List接口,因此只能用作List
链表实现List,Deque接口,因此可以用作List,Stack或Queue

什么时候使用ArrayList或LinkedList?

这实际上取决于我们的需求。

  • 如果我们有更多的插入或删除,则应使用LinkedList。
  • 如果我们的插入或删除操作较少,而搜索操作较多,则应使用ArrayList。

请通过  爪哇核心面试题 了解更多面试问题。


导入联系人

您可能还喜欢:

相关文章

  • 10月02

    用Java中的值初始化ArrayList

    在本文中,我们将学习使用Java中的值初始化ArrayList。 数组列表是Java中List接口的实现类。它用于存储元素。它基于动态增长的阵列概念。我们可以通过几种方式用值初始化ArrayList。让’我们看到了其中一些…]

  • 3月17日

    爪哇 8中的PriorityQueue

    在本文中,我们将介绍Java 8 PriorityQueue。当应该根据对象的优先级处理对象时,在这种情况下,我们使用PriorityQueue。这是一种特殊的队列(也称为非绑定队列),可以根据元素的自然顺序或基于[…]

  • 10月06日

    2d Arraylist 爪哇示例

    在本文中,我们将看到如何在Java中创建2d Arraylist。创建2d Arraylist的最佳方法是在Java中创建列表的列表。 [crayon-601c0337620c1741865381 /]’s创建一个程序来实现2d Arraylist 爪哇。 [crayon-601c0337620c5603715445 /]输出:list3中的第二个元素:List3_Str2 list1中的第三个元素:List1_Str3 list2中的第一个元素[…]

  • 04 May

    哈希图如何在Java中工作

    最常见的面试问题是<code>HashMap如何在Java中工作</code>, “HashMap的获取和放置方法如何在内部工作”。在这里,我试图通过一个简单的示例来解释内部功能。 [crayon-601c033770d9b665703457-i /]是Java中使用最广泛的Collections之一,而不是从理论上讲,我们将首先从示例开始,这样您就可以[…]

  • 10月21日

    如何在Java中对HashSet进行排序

    在本文中,我们将看到如何在Java中对HashSet进行排序。 哈希集是一个不按任何顺序存储元素的集合。您可能会遇到需要对HashSet进行排序的情况。排序HashSet的方法有很多种,我们将在这里看到两种方法。使用TreeSet可以使用[…]

  • 10月20日

    要设置的Java数组

    在本文中,我们将学习Java数组设置转换。有很多方法可以将数组转换为set。 1.使用Java 8’s Stream如果您使用的是Java 8,建议您使用此方法。 [crayon-601c0337712dd742663295 /]输出[John,Martin,Mary] 2.使用HashSet构造函数()我们可以直接调用HashSet‘s的java构造函数set […]

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。