【问题标题】:List vs LinkedList vs ArrayList [duplicate]List vs LinkedList vs ArrayList [重复]
【发布时间】:2021-12-19 15:07:48
【问题描述】:

在Java中我们应该根据什么选择使用List、LinkedList、ArrayList?

另外请说明哪个更好用?

【问题讨论】:

  • 值得一提的是List 是一个接口,而ArrayList(和LinkedList)是List一个实现
  • 欢迎来到 StackOverflow!请参阅how to ask a good question 上的指南以及在需要时如何提供minimal reproducible example 以便人们可以尝试帮助您解决问题。在提出问题之前,您通常需要自己做功课和研究。
  • 请注意,Java 对链表的实现是有限的。没有等效于 C++ 的 std::list::splice(),它用于在列表内或列表之间移动节点。 Java的链表迭代器不能被浅拷贝,赋值只是创建另一个指向同一个迭代器对象的指针。如果从链接列表中插入或删除某些内容,则该列表的所有迭代器都将无效(或除用于插入或删除的迭代器之外的所有迭代器)。由于这些问题,最好创建自己的链表类。

标签: java list arraylist linked-list


【解决方案1】:

List 是一个接口,它应该是你的变量类型或者你方法的参数。

另外两个是这个接口的实现。

LinkedList 针对插入和删除进行了优化。

ArrayList 针对随机访问进行了优化。

因此,您可以根据要从事的工作类型进行选择。

【讨论】:

  • 理论上LinkedList 已针对插入和删除进行了优化,但实际上使用ArrayList 几乎总能获得更好的性能。
猜你喜欢
  • 1970-01-01
  • 2014-09-17
  • 2011-08-17
  • 2011-01-25
  • 2016-03-17
  • 2017-10-20
  • 2016-03-16
  • 2016-04-02
  • 2012-08-07
相关资源
最近更新 更多