雙端佇列Deque java
阿新 • • 發佈:2020-12-25
技術標籤:leetcode刷題筆記queuejavaiterator佇列
Deque支援在兩端插入和移除元素。名稱 deque 是“double ended queue(雙端佇列)”的縮寫,通常讀為“deck”。
函式名 | 新增功能 |
---|---|
push(E) | 向隊頭插入一個元素 |
offerFirst(E) | 向佇列頭部加入一個元素 |
offerLast(E) | 向佇列尾部加入一個元素 |
函式名 | 獲取功能 |
---|---|
peekFirst() | 獲取佇列頭部元素 |
peekLast() | 獲取佇列尾部元素 |
函式名 | 刪除功能 |
---|---|
removeFirstOccurrence(Object) | 刪除第一次出現的指定元素 |
removeLastOccurrence(Object) | 刪除最後一次出現的指定元素 |
函式名 | 彈出功能 |
---|---|
pop() | 彈出佇列頭部元素 |
removeFirst() | 彈出佇列頭部元素 |
removeLast() | 彈出佇列尾部元素 |
pollFirst() | 彈出佇列頭部元素 |
pollLast() | 彈出佇列尾部元素 |
函式名 | 迭代器 |
---|---|
descendingIterator() | 返回佇列反向迭代器 |
import java.util.Deque;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Scanner;
class test {
public static void main(String[ ] args) {
Deque<Integer> deque = new LinkedList<>();
deque.offerLast(5); // 向隊尾插入5
deque.offerFirst(3); // 向隊頭插入3
deque.offerLast(12);
// 此時狀態 3,5,12
// 正向遍歷佇列
Iterator<Integer> iterator1 = deque.iterator();
while (iterator1. hasNext()){
System.out.print(iterator1.next() + " ");
}
System.out.println("");
// 反向遍歷
Iterator<Integer> iterator2 = deque.descendingIterator();
while (iterator2.hasNext()){
int a = iterator2.next();
System.out.print(a + " ");
}
}
}
輸出