java - 为什么数组列表比后进先出行为的链表更快?

标签 java arraylist linked-list

我编写了一个算法,它在数据结构的末尾添加和删除大量项目(基本上是后进先出)。

现在由于某些原因,当我使用 ArrayList 执行此操作时,它比 LinkedList 快得多,即使 ArrayList 需要重定位的开销。它甚至不快一点。英里更快!

这是为什么?

最佳答案

好吧,每次你插入一个 LinkedList 时,都会分配一个新对象。当您插入 ArrayList 时,只有在没有更多空间时才会进行分配。在这一点上,它使可用空间加倍,并且在空间用完之前您不会再次分配。所以在 LinkedList 中创建对象的成本几乎肯定是不同的。

关于java - 为什么数组列表比后进先出行为的链表更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785584/

相关文章:

Java 泛型 TypeOf 返回 T

c++ - 删除链表C++中的节点

c - 如何将链表从一个文件传递到同一项目中的另一个文件?

java - 消息 "operations coalesced during safepoint"的含义

java - JUnit 为 com.google.common.collect.Iterables.tryFind 抛出 java.lang.NoSuchMethodError

java - 将coverage.ec文件上传到Android Sonar

java - 为什么这个数组列表会出现索引越界错误?

android - I/Choreographer : Skipped 439 frames! 应用程序可能在其主线程上做了太多工作

java - 递增 ArrayList 时出现 IndexOutOfBoundsException

c - 为什么 gcc 说我有未声明的变量 'newNode'?