Java集合框架(六)Deque接口

Deque表示双端队列。双端队列是在两端都可以进行插入和删除的队列。Deque是一个比StackQueue功能更强大的接口,它同时实现了栈和队列的功能。ArrayDequeLinkeList实现了Deque接口。

注意:Deque既可以用作后进先出的栈,也可以用作先进先出的队列。

Deque接口定义如下:

public interface Deque extends Queue {
    // *** Deque methods ***
    void addFirst(E e);
    void addLast(E e);
    boolean offerFirst(E e);
    boolean offerLast(E e);
    E removeFirst();
    E removeLast();
    E pollFirst();
    E pollLast();
    E getFirst();
    E getLast();
    E peekFirst();
    E peekLast();
    boolean removeFirstOccurrence(Object o);
    boolean removeLastOccurrence(Object o);
    
    // *** Queue methods ***
    boolean add(E e);
    boolean offer(E e);
    E remove();        
    E poll();
    E element();
    E peek();
    
    // *** Stack methods ***
    void push(E e);
    E pop();

    // *** Collection methods ***
    boolean remove(Object o);
    boolean contains(Object o);
    public int size();
    Iterator iterator();
    Iterator descendingIterator();
}

双端队列方法

Java集合框架(六)Deque接口_第1张图片
双端队列方法

插入

addFirstofferFirstDeque实例头部插入元素。
addLastofferLastDeque实例尾部插入元素。
Deque实现类为有限容量时,优先使用offerFirstofferLast,因为addFirst在队列满的时候可能会插入失败而抛出异常。

删除

removeFirstpollFirstDeque实例头部移除元素。
removeLastpollLastDeque实例尾部移除元素。
Deque为空时,pollFirstpollLast将会返回null,而removeFirstremoveLast将会抛出异常。

检索

getFirstpeekFirst获取Deque实例的第一个元素,但是不会将元素从Deque实例中删除。类似地,getLastpeekLast获取最后一个元素。当Deque为空时,getFirstgetLast将会抛出异常,而peekFirstpeekLast将会返回null

除了基本的插入、删除和检索方法外,还有两个预定义的方法:removeFirstOccurenceremoveLastOccurence。这两个方法见名知意。返回true的时候表示元素存在于队列,并且已经被删除。返回false时表示元素不存在于队列中,并且队列没有改变。

你可能感兴趣的:(Java集合框架(六)Deque接口)