队列vs java中的Dequeue

时间:2016-08-07 08:13:28

标签: java data-structures queue deque

他们之间有什么区别?我知道

队列设计为在队列末尾插入元素,并从队列的开头删除元素。 Dequeue表示一个队列,您可以在其中插入和删除队列两端的元素。

但哪个效率更高?

另外两者有什么区别?因为我对它们有一些了解,我上面说过,但我想了解更多关于它们的信息。我们将不胜感激。

2 个答案:

答案 0 :(得分:32)

Deque是"双端队列"的缩写。使用普通队列,您可以在一端添加内容并从另一端获取它们。使用双端队列,您可以向两端添加内容,并从任一端获取它们。这使它更具通用性;例如,如果你愿意,可以将它用作堆栈。

在效率方面,它实际上取决于实施。但一般来说,你不会期望一个双端队列优于队列,因为(单端)队列可以以不允许在"添加或删除对象的方式实现。错"结束。而deque的任何实现也可以作为队列的实现。

答案 1 :(得分:4)

Deque和队列是可以以不同方式实现的抽象数据类型。要谈论性能,您必须指定要比较的实施以及您感兴趣的操作。更好的是,自己使用应用程序所具有的工作负载以及您所处的环境来执行基准测试。将要使用(硬件,操作系统,JVM版本)。

由于每个双端队列也是一个队列,一般来说你可以说deques最多可以像队列一样好。