我编写了一个算法,它在数据结构的末尾添加和删除大量项目(基本上是后进先出)。
现在由于某些原因,当我使用 ArrayList
执行此操作时,它比 LinkedList
快得多,即使 ArrayList 需要重定位的开销。它甚至不快一点。英里更快!
这是为什么?
最佳答案
好吧,每次你插入一个 LinkedList 时,都会分配一个新对象。当您插入 ArrayList 时,只有在没有更多空间时才会进行分配。在这一点上,它使可用空间加倍,并且在空间用完之前您不会再次分配。所以在 LinkedList 中创建对象的成本几乎肯定是不同的。
关于java - 为什么数组列表比后进先出行为的链表更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785584/