【问题标题】:ArrayList vs LinkedList Java [duplicate]ArrayList vs LinkedList Java [重复]
【发布时间】:2014-09-17 18:34:30
【问题描述】:

ArrayList 和 LinkedList 有什么区别?我看过 TheNewBoston 的一段视频,但我仍然很困惑。请用简短的形式和简单的英语回答。请不要使用任何高级代码。

【问题讨论】:

  • ArrayListed 由一个数组支持,LinkedList 是一个双链接元素的列表。两者都实现了 java.util.List 接口
  • @scribaniwannabe:这不是完全重复。问的不是同一个问题。
  • 如果重复问题的答案没有意义,那么你应该说what没有意义
  • 我们不知道你不知道什么。这就像说你不明白水的图片和柠檬水的图片之间的区别,也许你只需要尝试一下就可以看出区别。
  • @peterzhu2118 如果问题是您不理解的术语,维基百科是您的朋友。 O(1) 等符号通常称为"Big O notation"

标签: java


【解决方案1】:

对于 arrayList,您可以访问每个元素,每个元素都有自己的索引值。例如,如果您想要 ArrayList 中的第三项,则只需执行 arrList.get(2) 即可获得该值。 ArrayList 使用与数组类似的结构。

对于链表,您只能访问第一个元素,但每个元素都可以访问下一个元素。所以,要达到第三个元素,你必须先达到第一个,然后是第二个,最后是第三个。将 LinkedList 想象成一条链。如果您拥有链的第一部分,但切断了对第二部分的访问,那么您也会失去它的其余部分。

它们在内存、处理时间和易用性方面各有优缺点。如果您有任何更具体的问题或需要澄清,请告诉我。

【讨论】:

    【解决方案2】:

    ArrayList 是一个由Object[] 支持的列表实现。它支持随机访问和动态调整大小。

    LinkedList 是一个列表实现,它使用对 head 和 tail 的引用来导航它。它没有随机访问功能,但也支持动态调整大小。

    请记住,两者都支持get(int index) 签名,但两种实现之间的区别在于性能:使用ArrayList,这是进入索引位置的问题,而使用LinkedList,你必须沿着对象链向下走(从前面或后面,取决于您索引到的内容)。

    【讨论】:

      猜你喜欢
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 2016-03-17
      • 2012-03-24
      • 2016-04-02
      • 2017-10-20
      • 2023-04-03
      相关资源
      最近更新 更多