Java集合框架(六)Deque接口

Deque表示雙端隊列。雙端隊列是在兩端都可以進行插入和刪除的隊列。Deque是一個比StackQueue功能更強大的接口,它同時實現了棧和隊列的功能。ArrayDequeLinkeList實現了Deque接口。

注意:Deque既可以用作后進先出的棧,也可以用作先進先出的隊列。

Deque接口定義如下:

public interface Deque<E> extends Queue<E> {
    // *** 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<E> iterator();
    Iterator<E> descendingIterator();
}

雙端隊列方法

雙端隊列方法

插入

addFirstofferFirstDeque實例頭部插入元素。
addLastofferLastDeque實例尾部插入元素。
Deque實現類為有限容量時,優(yōu)先使用offerFirstofferLast,因為addFirst在隊列滿的時候可能會插入失敗而拋出異常。

刪除

removeFirstpollFirstDeque實例頭部移除元素。
removeLastpollLastDeque實例尾部移除元素。
Deque為空時,pollFirstpollLast將會返回null,而removeFirstremoveLast將會拋出異常。

檢索

getFirstpeekFirst獲取Deque實例的第一個元素,但是不會將元素從Deque實例中刪除。類似地,getLastpeekLast獲取最后一個元素。當Deque為空時,getFirstgetLast將會拋出異常,而peekFirstpeekLast將會返回null。

除了基本的插入、刪除和檢索方法外,還有兩個預定義的方法:removeFirstOccurenceremoveLastOccurence。這兩個方法見名知意。返回true的時候表示元素存在于隊列,并且已經被刪除。返回false時表示元素不存在于隊列中,并且隊列沒有改變。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容