【问题标题】:Performance of ArrayList vs ArrayDeque while implementing stack实现堆栈时 ArrayList 与 ArrayDeque 的性能
【发布时间】:2015-07-11 11:40:56
【问题描述】:

我对这种行为有些怀疑。我假设 ArrayList 的性能将与 ArrayDeque 相同,同时实现堆栈,因为 ArrayDeque 将使用其 addLast() 方法进行插入并使用 removeLast() 方法进行删除。在这种情况下,两者的效率相同.如果我在某处错了,请纠正我。

【问题讨论】:

  • 为什么不测试这种行为?

标签: java


【解决方案1】:

当用作堆栈时,ArrayDequeArrayList 的性能应该差不多。两个“推”都将摊销 O(1),尽管它们的初始容量可能会对性能产生轻微影响。

default capacity for ArrayList is 10,而initial capacity of ArrayDeque is 16。他们的内部增长政策导致小的绩效差异,这在实践中可能并不明显。您可以参考此post 了解更多信息。

毕竟,他们的“推”操作摊销 O(1)。

** 这个post 提到ArrayDeque 的javadoc 表明它可能会稍微快一些,但我还没有找到源代码。

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 2014-07-17
    • 1970-01-01
    • 2013-01-25
    • 2020-04-20
    • 1970-01-01
    • 2019-11-11
    • 2013-01-05
    • 2010-11-27
    相关资源
    最近更新 更多