我对此行为有一些疑问。我假设 ArrayList 的性能与 ArrayDeque 相同,同时实现堆栈,因为 ArrayDeque 将使用其 addLast() 方法进行插入,使用 removeLast() 进行删除。在这种情况下,两者的效率相同.如果我有错误的地方请纠正我。
最佳答案
当用作堆栈时,ArrayDeque
和 ArrayList
的性能应该几乎相同。两个“推送”都将摊销 O(1),尽管它们的初始容量可能会对性能产生轻微影响。
default capacity for ArrayList
is 10 ,而initial capacity of ArrayDeque
is 16 。他们的内部增长政策导致较小的绩效差异,这在实践中可能并不明显。可以引用这个post了解更多信息。
毕竟,他们的“推”操作摊销为 O(1)。
** 这个 post提到ArrayDeque
的javadoc表明它可能会稍微快一些,但我还没有找到源代码。
关于java - 实现堆栈时 ArrayList 与 ArrayDeque 的性能对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990284/