Deque 接口定义
java.util
包下的 Deque<E>
接口继承自 Queue<E>
接口,是一种双端队列数据结构。
Deque
的全称是:Double Ended Queue,发音为:deck下面的表格是
Deque<E>
接口定义的常用方法: | Group | Method | Description | Remark | | —- | —- | —- | —- | | 入队(首) | addFirst | void addFirst(E e)
入队(首):把元素加到队首。 | 在没有可用空间时抛出异常:IllegalStateException
| | | offerFirst | boolean offerFirst(E e)
入队(首):把元素加到队首。 | 添加失败时返回:false
| | 入队(尾) | addLast | void addLast(E e)
入队(尾):把元素加到队尾。 | 在没有可用空间时抛出异常:IllegalStateException
| | | offerLast | boolean offerLast(E e)
入队(尾):把元素加到队尾。 | 添加失败时返回:false
| | 出队(首) | removeFirst | E removeFirst()
出队(首):返回队首的元素并移除。 | 在队列为空时抛出异常:NoSuchElementException
| | | pollFirst | E pollFirst()
出队(首):返回队首的元素并移除。 | 在队列为空时返回:null
| | 出队(尾) | removeLast | E removeLast()
出队(尾):返回队尾的元素并移除。 | 在队列为空时抛出异常:NoSuchElementException
| | | pollLast | E pollLast()
出队(尾):返回队尾的元素并移除。 | 在队列为空时返回:null
| | 查看(首) | getFirst | E getFirst()
查看(首):返回队首的元素,但不移除。 | 在队列为空时抛出异常:NoSuchElementException
| | | peekFirst | E peekFirst()
查看(首):返回队首的元素,但不移除。 | 在队列为空时返回:null
| | 查看(尾) | getLast | E getLast()
查看(尾):返回队尾的元素,但不移除。 | 在队列为空时抛出异常:NoSuchElementException
| | | peekLast | E peekLast()
查看(尾):返回队尾的元素,但不移除。 | 在队列为空时返回:null
|
Deque包含Queue的部分
- 因为继承自
Queue<E>
,所以Deque<E>
也包含了Queue定义的方法 | Group | Method | Description | Remark | | —- | —- | —- | —- | | 入队 | add | boolean add(E e)
入队:把元素加到队尾。 | 等价于:addLast
| | | offer | boolean offer(E e)
入队:把元素加到队尾。 | 等价于:offerLast
| | 出队 | remove | E remove()
出队:返回队首的元素并移除。 | 等价于:removeFirst
| | | poll | E poll()
出队:返回队首的元素并移除。 | 等价于:pollFirst
| | 查看 | element | E element()
查看:返回队首的元素,但不移除。 | 等价于:getFirst
| | | peek | E peek()
查看:返回队首的元素,但不移除。 | 等价于:peekFirst
|
Deque替代Stack的基本方法
- 除此之外,
Deque<E>
还提供了替代Stack
的基本方法,如下: | Method | Description | Remark | | —- | —- | —- | | push | void push(E e)
入栈:把元素压入堆栈顶部。 | 等价于:addFirst
| | pop | E pop()
出栈:返回栈顶的元素并移除。 | 等价于:removeFirst
| | peek | E peek()
查看:返回栈顶的元素,但不移除。 | 等价于:peekFirst
|
Deque定义的其他方法
Method | Description |
---|---|
boolean removeFirstOccurrence(Object o) | 从队首移除指定元素,移除成功返回true |
boolean removeLastOccurrence(Object o) | 从队尾移除指定元素,移除成功返回true |