雙端佇列
Deque
是雙端佇列,這意味著可以在佇列的前端或尾部新增元素。佇列只能將元素新增到佇列的尾部。
Deque
繼承了 Queue
介面,這意味著常規方法仍然存在,但 Deque 介面提供了更多靈活的佇列方法。如果你知道佇列是如何工作的,那麼額外的方法真的可以說是自我,因為這些方法旨在增加更多的靈活性:
方法 | 簡要描述;簡介 |
---|---|
getFirst() |
獲取佇列頭部的第一項而不刪除它。 |
getLast() |
獲取佇列尾部的第一項而不刪除它。 |
addFirst(E e) |
將項新增到佇列的頭部 |
addLast(E e) |
將項新增到佇列的尾部 |
removeFirst() |
刪除佇列頭部的第一個專案 |
removeLast() |
刪除佇列尾部的第一個專案 |
當然,offer
,poll
和 peek
的選項相同,但它們不能用於例外,而是使用特殊值。展示他們在這裡做了什麼是沒有意義的。
新增和訪問元素
要將元素新增到 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();