java - 实现堆栈时 ArrayList 与 ArrayDeque 的性能对比

标签 java

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

最佳答案

当用作堆栈时,ArrayDequeArrayList 的性能应该几乎相同。两个“推送”都将摊销 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/

相关文章:

java - Oracle驱动在PreparedStatement中setFetchSize时出现OutOfMemoryError

java - 请求响应模式及其用法

java - 如何在java应用程序中显示卡纳达语文本字符串

java - 具有对象和原始类型的模糊可变参数方法

java - 将列表作为可变参数传递

java - 检查 JUnit 测试用例中的超时

java - Selenium 测试: Method Not Allowed error

java - Selenium 测试后的数据库清理

java - 日期解析不起作用

java - Apache James 邮件服务器 - 将附件保存在文件系统上