【发布时间】:2011-09-04 00:35:54
【问题描述】:
我试图理解为什么 Java 的 ArrayDeque 比 Java 的 LinkedList 更好,因为它们都实现了 Deque 接口。
我几乎看不到有人在他们的代码中使用 ArrayDeque。如果有人对 ArrayDeque 的实现方式有更多的了解,那将会很有帮助。
如果我理解它,我会更有信心使用它。我无法清楚地理解 JDK 实现管理头尾引用的方式。
【问题讨论】:
-
看我几天前做的这个问题的答案:stackoverflow.com/questions/6129805/…
-
在您安装 jdk 的文件夹中,有一个文件
src.zip。它是带有 java 类源代码的存档。我强烈建议研究这些类的结构和内部结构,以更好地了解 Java 类的工作原理。 -
还有一点。 ArrayDeque 的默认大小是 16。当 ArrayDeque 满时,它的大小会翻倍。大小翻倍后,元素被复制到新数组中。最好使用初始大小来初始化 ArrayDeque。
-
还有一点值得一提的是,在 LinkedList 上,您可以使用索引来遍历其元素,而 ArrayDeque 不支持基于索引的访问。
标签: java deque linked-list arraydeque