Java中的隊列是一個非常常見的數據結構,它的作用就是按照特定的順序存儲和訪問元素,可以說幾乎在所有的Java項目中都會用到隊列。除了普通的隊列,Java中還有一種雙端隊列,也就是Dequeue。接下來我們將重點介紹Java的Queue和Dequeue。
Java的Queue接口是一種線性結構,它用于存儲元素的集合,遵守先進先出(FIFO)的原則。它只允許在隊列的尾部進行添加元素的操作,而只允許在隊列的頭部進行刪除元素的操作。Queue接口有多種實現方式,如LinkedList和ArrayDeque,下面是一個簡單的Queue示例:
import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main(String[] args) { Queuequeue = new LinkedList<>(); queue.add("A"); queue.add("B"); queue.add("C"); System.out.println("隊列頭部元素為:" + queue.peek()); System.out.println("隊列大小為:" + queue.size()); while (!queue.isEmpty()) { System.out.println(queue.remove()); } } }
這個示例中我們使用了Java的LinkedList類實現了Queue接口,它會按照先進先出的順序存儲元素,并有peek(查看隊列頭部元素)和remove(刪除隊列頭部元素)操作。運行結果為:
隊列頭部元素為:A 隊列大小為:3 A B C
雙端隊列是隊列的擴展,它支持元素的插入和刪除操作,并且插入和刪除的位置可以是隊列的前端或者后端。Java中的雙端隊列叫做Deque,可以用LinkedList實現。下面是一個簡單的Deque示例:
import java.util.ArrayDeque; import java.util.Deque; public class DequeExample { public static void main(String[] args) { Dequedeque = new ArrayDeque<>(); deque.addFirst("A"); deque.addLast("B"); deque.addLast("C"); System.out.println("Dequeue前端元素為:" + deque.peekFirst()); System.out.println("Dequeue后端元素為:" + deque.peekLast()); System.out.println("Dequeue大小為:" + deque.size()); while (!deque.isEmpty()) { System.out.println(deque.pollFirst()); } } }
我們使用了Java的LinkedList類實現了Deque接口,它會按照雙端隊列的順序存儲元素,并有peekFirst(查看隊列前端元素)、peekLast(查看隊列后端元素)和pollFirst(刪除隊列前端元素)操作。運行結果為:
Dequeue前端元素為:A Dequeue后端元素為:C Dequeue大小為:3 A B C
通過上面的兩個示例,相信大家已經能夠理解Java的Queue和Deque了。