【发布时间】:2021-10-12 19:14:08
【问题描述】:
在许多帖子中,当我阅读到 LinkedList 的好处时,我听到的最常见的好处是,在某些情况下,LinkedList 的性能更高,因为插入和删除比在数组中更快。
具体来说,参数是数组使用效率较低,因为为了扩展它们,需要将内容复制到具有更大声明大小的不同数组。
但是,由于 Java 有 ArrayList,它没有容量限制,所以关于 LinkedLists 性能更高的这一点似乎是无效的。链接列表现在在 Java 中已经过时了吗?有没有什么情况下 LinkedList 实际上仍然比 Java 中的 ArrayList 更好?
【问题讨论】:
-
"没有容量限制" - ArrayList 仍然由数组支持,但它只是为您隐藏了数组扩展和复制。
-
有没有想过为什么
ArrayList被称为“array list”?它在底层使用了一个数组。 -
你是对的,你不太可能需要
LinkedList。作为一名 Java 程序员,我在 20 多年的时间里使用过一次,现在回想起来就后悔了。 -
在 Java 之前似乎有使用链表的传统,所以我猜他们认为最好在 Java 集合框架中也包含一个。因此,如果我是对的,其目的是展示人们将认为是一整套集合实现的内容。这是一种避免因缺点而受到批评的简单方法,无论这种批评是否有效。目的并不实际。
-
最糟糕的是他们在面试候选人时仍然被用于技术面试
标签: java arrays algorithm linked-list big-o