【发布时间】:2018-11-27 17:17:35
【问题描述】:
我在某些地方读到,Java 中的 LinkedList 添加和删除元素的时间复杂度为 O(1),而获取元素的时间复杂度为 O(n)。而 ArrayList 有 O(1) 来获取元素和 O(n) 来添加和删除。
我有一个程序,它必须执行许多涉及从列表中插入和恢复元素的操作。所以,我想知道 ArrayDeque 访问元素的时间是否类似于 ArrayList。
【问题讨论】:
-
您在提问之前阅读过 java 文档吗? Deque 的文档说明 大多数 ArrayDeque 操作在摊销的常数时间内运行。例外情况包括 remove、removeFirstOccurrence、removeLastOccurrence、contains、iterator.remove() 和批量操作,所有这些操作都以线性时间运行。 请参阅 docs.oracle.com/javase/7/docs/api/java/util/ArrayDeque.html
-
谢谢,这个链接太棒了,我从来没有找到过这样的东西。
标签: java data-structures time-complexity