欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Java 数据结构与算法实践] 系列 013:Java 队列 07 - 双端队列 Deque-3.用作堆栈的队列

最编程 2024-03-25 14:53:52
...

 

 

Deque也可以用作LIFO的栈。这个接口应该优先于旧版的Stack类使用。当一个Deque作为栈使用时,元素从Deque开始被推入并弹出。堆栈方法与Deque方法等效,如下表所示:

StackDeque方法的比较

 

                                        

 

Stack

 
 

Deque

 
 

push(e)

 
 

addFirst(e)

 
 

pop()

 
 

removeFirst()

 
 

peek()

 
 

getFirst()

 

 

 

 

请注意,当一个Deque用作一个队列或堆栈时,peek()方法同样有效。在这两种情况下,元素都是从Deque的队首开始的。

 

 

Deque接口提供了两种方法来移除内部元素,即removeFirstOccurrenceremoveLastOccurrence List接口不同,此Deque不提供对元素的索引访问支持。

 

 

尽管Deque实现不是严格要求禁止插入空元素,但是强烈建议任何允许空元素的Deque实现的用户不要利用插入空元素的能力。这是因为null被各种方法用作一个特殊的返回值来指示Deque为空。

 

Deque实现通常不定义equalshashCode方法的基于元素的版本,而是从类Object继承基于标识的版本。