当前位置:   article > 正文

Java--Queue和Deque_java queue deque

java queue deque

​Queue以及Deque都是继承于Collection,Deque是Queue的子接口。 Queue是FIFO的单向队列,Deque是双向队列。 Queue有一个直接子类PriorityQueue,而Deque中直接子类有两个:LinkedList以及ArrayDeque。

1、Queue(单向队列)

(1)基本介绍:
  • Queue是先进先出(FIFO)的单向队列,只允许在表的前端进行删除操作,在表的后端进行插入操作。

  • LinkedList类实现了Queue接口,因此可以把LinkedList当成Queue来用。

  • Queue实现通常不允许插入null元素,尽管某些实现(比如LinkedList)并不禁止插入null,但即使在允许插入null的实现中也不应该这样做,因为null也作为poll()等方法的一个特殊返回值。

(2)基本方法:
方法方法说明
add(), offer()在尾部添加元素,add()在添加失败(比如队列已满)时会报运行时错误,而offer()在添加失败时会返回false。
remove(), poll()删除元素并返回头部,当队列为空时remove()会报错NoSuchElementException,而poll()会返回null。
element(), peek()获取头部元素但不删除,当队列为空时element()会抛出异常,而peek()会返回null。

2、Deque(双端队列)

(1)基本介绍:
  • Deque是Queue的一个子接口,双端队列是指该队列的两端既能入队也能出队,如果将Deque限制为只从一端入队和出队,则可实现栈先进后出的数据结构。
  • 使用栈时应优先使用Deque接口而不是遗留Stack类,在将双端队列用作栈时,添加元素从队列头部插入,删除元素时从队列头部弹出。
  • Deque接口扩展了Queue接口,在将双端队列用作队列时,将得到先进先出的数据结构,即将元素添加到双端队列的末尾,并从双端队列的头部删除元素。
(2)基本方法:
  • 两端插入、删除和获取元素
在头部操作在尾部操作
操作失败时抛出异常操作失败时返回null操作失败时抛出异常操作失败时返回null
插入元素addFirst()offerFirst()addLast()offerLast()
删除元素removeFirst()pollFirst()removeLast()pollLast()
获取元素但不删除getFirst()peekFirst()getLast()peekLast()
  • 与栈方法等效的Deque方法
操作栈方法等效的Deque方法
插入元素push()addFirst()
删除元素pop()removeFirst()
获取栈顶元素但不删除peek()peekFirst()
  • 与Queue接口方法等效的Deque方法
操作Queue方法等效的Deque方法
插入元素add()addLast()
插入元素offer()offerLast()
删除元素remove()removeFirst()
删除元素poll()pollFirst()
获取元素但不删除element()getFirst()
获取元素但不删除peek()peekFirst()
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/906980
推荐阅读
相关标签
  

闽ICP备14008679号