雙端佇列

Deque雙端佇列,這意味著可以在佇列的前端或尾部新增元素。佇列只能將元素新增到佇列的尾部。

Deque 繼承了 Queue 介面,這意味著常規方法仍然存在,但 Deque 介面提供了更多靈活的佇列方法。如果你知道佇列是如何工作的,那麼額外的方法真的可以說是自我,因為這些方法旨在增加更多的靈活性:

方法 簡要描述;簡介
getFirst() 獲取佇列頭部的第一項而不刪除它。
getLast() 獲取佇列尾部的第一項而不刪除它。
addFirst(E e) 將項新增到佇列的頭部
addLast(E e) 將項新增到佇列的尾部
removeFirst() 刪除佇列頭部的第一個專案
removeLast() 刪除佇列尾部的第一個專案

當然,offerpollpeek 的選項相同,但它們不能用於例外,而是使用特殊值。展示他們在這裡做了什麼是沒有意義的。

新增和訪問元素

要將元素新增到 Deque 的尾部,可以呼叫它的 add() 方法。你還可以使用 addFirst()addLast() 方法,這些方法將元素新增到雙端佇列的頭部和尾部。

Deque<String> dequeA = new LinkedList<>();

dequeA.add("element 1");      //add element at tail
dequeA.addFirst("element 2"); //add element at head
dequeA.addLast("element 3");  //add element at tail

你可以檢視佇列頭部的元素,而無需將元素從佇列中取出。這是通過 element() 方法完成的。你還可以使用 getFirst()getLast() 方法,它們返回 Deque 中的第一個和最後一個元素。這是看起來如何:

String firstElement0 = dequeA.element();
String firstElement1 = dequeA.getFirst();
String lastElement = dequeA.getLast();

刪除元素

要從雙端佇列中刪除元素,請呼叫 remove()removeFirst()removeLast() 方法。這裡有一些例子:

String firstElement = dequeA.remove();
String firstElement = dequeA.removeFirst();
String lastElement  = dequeA.removeLast();