队列vs java中的Dequeue

30 java queue deque data-structures

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

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

但哪个效率更高?

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

Daw*_*ica 34

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

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

  • @byteis8bits我的回答是双端队列不会比队列更有效。 (5认同)

Jon*_*oni 5

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

由于每个 deque 也是一个队列,因此通常可以说 deque 最多与队列一样好。