数组列表与链接列表Java性能

时间:2017-11-19 08:11:18

标签: java arrays list collections linked-list

我正在浏览Java中List接口的Array List和Linked List实现之间的差异。几乎所有资源,我都说过,数组列表为基于索引的操作(搜索等)提供了更好的性能O(1),并且需要移动元素(或在这种情况下复制)以进行插入和删除。另一方面,链接列表更适合插入和删除,因为它只需要更改引用和Node对象的实例化。 然后我遇到了一篇说明

的文章
  

然而,在大多数情况下,ArrayList优于LinkedList。甚至在进行O(n)操作时在ArrayList中移位的元素也被实现为非常快速的System.arraycopy()调用。它甚至可以看起来比LinkedList的O(1)插入更快,这需要实例化Node对象并更新引擎盖下的多个引用。由于创建了多个小型Node对象,LinkedList也可能会产生大量内存开销。

这让我觉得如果复制插入/删除元素(在ArrayList中)可能比节点的实例化和随后的引用更改(在LinkedList中)更快,那么Array List应该优于每次使用的Linked List案件。现在我的问题是,如果这是真的那么链接列表的用例是什么?如果这个前提错了,请赐教我

0 个答案:

没有答案