溫馨提示×

Java數據結構之隊列(Queue)詳解

小億
125
2024-01-02 16:45:39
欄目: 編程語言

隊列(Queue)是一種先進先出(FIFO)的數據結構,可以在一端插入元素,在另一端刪除元素。在隊列中,插入元素的一端稱為隊尾(rear),刪除元素的一端稱為隊頭(front)。

Java中的Queue接口是一個繼承自Collection接口的子接口,它定義了一些方法來操作隊列。常用的實現類有LinkedList和ArrayDeque。

以下是Queue接口中常用的方法:

  1. enqueue(E e):將元素e插入隊列的隊尾。
  2. dequeue():刪除隊列中的隊頭元素,并返回該元素。
  3. peek():獲取隊頭元素,但不刪除它。
  4. isEmpty():判斷隊列是否為空。
  5. size():獲取隊列中元素的個數。

LinkedList和ArrayDeque是Java中常用的隊列實現類。它們都實現了Queue接口,因此可以直接使用Queue接口中定義的方法。

  1. LinkedList實現了雙向鏈表,可以作為隊列的實現。它的enqueue(E e)方法將元素插入鏈表的末尾,dequeue()方法刪除鏈表的第一個元素,并返回該元素。

示例代碼:

Queue<Integer> queue = new LinkedList<>();

queue.enqueue(1); // 隊列中插入元素1
queue.enqueue(2); // 隊列中插入元素2

System.out.println(queue.peek()); // 輸出隊頭元素

int num = queue.dequeue(); // 刪除隊頭元素,并返回該元素
System.out.println(num); // 輸出刪除的元素

System.out.println(queue.isEmpty()); // 判斷隊列是否為空
System.out.println(queue.size()); // 輸出隊列中元素的個數
  1. ArrayDeque是一個雙端隊列的實現類,也可以作為隊列的實現。它的enqueue(E e)方法將元素插入雙端隊列的末尾,dequeue()方法刪除雙端隊列的第一個元素,并返回該元素。

示例代碼:

Queue<Integer> queue = new ArrayDeque<>();

queue.enqueue(1); // 隊列中插入元素1
queue.enqueue(2); // 隊列中插入元素2

System.out.println(queue.peek()); // 輸出隊頭元素

int num = queue.dequeue(); // 刪除隊頭元素,并返回該元素
System.out.println(num); // 輸出刪除的元素

System.out.println(queue.isEmpty()); // 判斷隊列是否為空
System.out.println(queue.size()); // 輸出隊列中元素的個數

隊列的應用場景非常廣泛,比如在實現消息隊列、線程池等方面都可以使用隊列數據結構。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女