我知道 ArrayDeque 在添加和删除简单列表时很快。 我实际上进行了测试,它的添加和删除比LinkedList更快。 因为我知道它是作为数组实现的,所以为什么不随机访问呢?
我阅读了Java src中的ArrayDeque.java文件。但是我的英语能力不太好。我看过很多Google和Stack Overflow的文章,但没有得到想要的答案。
最后,我想要的答案是:
1。为什么ArrayDeque不是随机访问?(我很好奇) 2.在什么情况下使用ArrayDeque? 3. ArrayDeque是否未实现为数组?(我知道错误的知识吗?)
非常感谢您的答复!
答案 0 :(得分:3)
如here中所述,ArrayDeque是Deque接口的可调整大小的数组实现。强调数据结构的是数组。但是,它不支持随机访问,因为它公开了双端队列接口。如果要访问Deque的随机元素,则可以调用toArray()
,然后按索引访问元素。
答案 1 :(得分:3)
答案 2 :(得分:3)
答案是没有充分的理由。向get(int)
添加恒定时间set(int,E)
和ArrayDeque
很容易。我必须不止一次地在ArrayDeque
内实现ArrayList
的算法来弥补这种不足。