deques是可遍历的数据结构吗?

时间:2014-10-21 05:26:49

标签: java queue

deques(双端队列)是否可遍历数据结构?它们是否具有基于数组的实现与链接实现是否有所不同?

3 个答案:

答案 0 :(得分:0)

是的,deques是可遍历的数据结构,你可以从deque中获取interator进行遍历。在功能上,它没有区别。但是,从技术和数据结构的角度来看,它会产生重大影响。请记住,当我们使用列表时,我们可以动态添加节点。但是,在使用数组时,我们需要定义deque的大小或使用默认大小。现在,如果你插入另一个元素,那么它将创建双倍大小的新数组,并将旧数组复制到新数组中,然后插入新元素。

答案 1 :(得分:0)

是的,它们是可穿越的。特别是在JAVA Deque API中,你总是可以得到迭代器(或)descendingIterator来分别从第一个到最后一个(或)从最后一个到第一个遍历Deque。

对于刚刚遍历Deque,底层实现可能没有太大区别。但对于其他操作,它确实如此。人们通常更喜欢使用LinkedDeque而不是LinkedList。有关此问题的更多信息,请遵循主题Why is ArrayDeque better than LinkedList

另请参阅相应的JAVA API以了解这两种不同实现之间的主要差异。

答案 2 :(得分:0)

没有。与结构一样,它是混合的(即堆栈和队列),deques(或双端队列)不是设计为可遍历的。事实上,它们是专门设计的,不可穿越。如果遍历包含在其中的项目的能力对于特定应用程序是必需的,那么在这种情况下,出列可能不是最好的数据结构。