你什么时候会使用java.util.LinkedList

可能重复:
何时通过ArrayList <>使用LinkedList <>?

这是一个真正的尝试,知道什么时候会使用LinkedList;

据我所知,因为java.util.LinkedList不支持随机访问,所以获得第n个元素的唯一方法是从1跳到(n-1)或使用get(n),这本身效率非常低。 那么为什么会使用LinkedList呢? 除非你想用ListIterator从两边迭代集合,否则一个ArrayList可以用于大多数情况?


想想这个方法:

List list = // choose your list here
list.add(0, new Object());

对于大型列表, LinkedList将严重超出ArrayList 。 这同样适用

list.remove(0);

...和许多其他方法。 有关更多信息,我建议阅读关于java.util.Deque接口,该接口也由LinkedList实现


在这些数据结构上考虑3种常见操作符:随机元素访问,添加元素和删除元素。

在LinkedList中,您的随机元素访问速度很慢(O(N)),但添加和删除速度很快(O(1)。对于ArrayList,反之亦然:随机元素访问速度很快(O(N)),并删除元素更慢。

您需要查看您的系统将执行哪些操作并使用适当的数据结构。


对于任意索引的插入/删除, LinkedList更适合(与ArrayList相比)。 在从ArrayList插入或删除时,必须移动内部数组。 对于LinkedList ,它只是简单地重新指定节点的指针。

链接地址: http://www.djcxy.com/p/19967.html

上一篇: When would you use a java.util.LinkedList

下一篇: Difference in LinkedList and ArrayList implementation?