JDK 1.6 interface

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