Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java Queue 接口

在本教程中,我們將學習Java Queue接口及其方法。

Java集合框架的Queue接口提供了隊列數(shù)據(jù)結構的功能。它繼承了Collection接口。

實現(xiàn)隊列的類

由于Queue是一個接口,因此我們無法提供它的直接實現(xiàn)。

為了使用Queue的功能,我們需要使用實現(xiàn)它的類:

ArrayDeque,LinkedList和PriorityQueue在Java中實現(xiàn)了Queue接口。

繼承Queue的接口

Queue接口還可以被各種子接口繼承:

  • Deque

  • BlockingQueue

  • BlockingDeque

Deque,BlockingQueue和BlockingDeque擴展了Queue接口。

隊列數(shù)據(jù)結構的工作流程

在隊列中,以先進先出的方式存儲和訪問元素。也就是說,從后面添加元素,從前面刪除元素。

隊列數(shù)據(jù)結構的工作:先進先出。

如何使用隊列(Queue)?

在Java中,必須導入java.util.Queue包才能使用Queue。

// 使用 LinkedList 創(chuàng)建
Queue<String> animal1 = new LinkedList<>();

// 使用 ArrayDeque 創(chuàng)建
Queue<String> animal2 = new ArrayDeque<>();

// 使用 PriorityQueue創(chuàng)建
Queue<String> animal 3 = new PriorityQueue<>();

在這里,我們分別創(chuàng)建了類LinkedList,ArrayDeque和PriorityQueue的對象Animal1,Animal2和Animal3。 這些對象可以使用Queue接口的功能。

Queue的方法

Queue接口包括Collection接口的所有方法。 這是因為Collection是Queue的超級接口。

Queue接口的一些常用方法是:

  • add() - 將指定的元素插入隊列。如果任務成功,則add()返回true,否則將引發(fā)異常。

  • offer() - 將指定的元素插入隊列。如果任務成功,則offer()返回true,否則返回false。

  • element() - 返回隊列的開頭。如果隊列為空,則引發(fā)異常。

  • peek() - 返回隊列的開頭。 如果隊列為空,則返回null。

  • remove() - 返回并刪除隊列的頭部。如果隊列為空,則引發(fā)異常。

  • poll() - 返回并刪除隊列的開頭。 如果隊列為空,則返回null。

隊列接口的實現(xiàn)

1.實現(xiàn)LinkedList類

import java.util.Queue;
import java.util.LinkedList;

class Main {

    public static void main(String[] args) {
        // 創(chuàng)建 Queue 使用LinkedList 類
        Queue<Integer> numbers = new LinkedList<>();

        //添加元素到 Queue
        numbers.offer(1);
        numbers.offer(2);
        numbers.offer(3);
        System.out.println("Queue: " + numbers);

        // 訪問Queue的元素
        int accessedNumber = numbers.peek();
        System.out.println("訪問元素: " + accessedNumber);

        //從隊列中Queue元素
        int removedNumber = numbers.poll();
        System.out.println("刪除元素: " + removedNumber);

        System.out.println("更新后的 Queue: " + numbers);
    }
}

輸出結果

Queue: [1, 2, 3]
訪問元素: 1
刪除元素: 1
更新后的 Queue: [2, 3]

要了解更多信息,請訪問Java LinkedList。

2.實現(xiàn)PriorityQueue類

import java.util.Queue;
import java.util.PriorityQueue;

class Main {

    public static void main(String[] args) {
        // 使用PriorityQueue類創(chuàng)建隊列 
        Queue<Integer> numbers = new PriorityQueue<>();

        //添加元素到 Queue
        numbers.offer(5);
        numbers.offer(1);
        numbers.offer(2);
        System.out.println("Queue: " + numbers);

        //訪問 Queue 的元素
        int accessedNumber = numbers.peek();
        System.out.println("訪問元素: " + accessedNumber);

        //從 Queue 刪除元素
        int removedNumber = numbers.poll();
        System.out.println("刪除元素: " + removedNumber);

        System.out.println("更新后的 Queue: " + numbers);
    }
}

輸出結果

Queue: [1, 5, 2]
訪問元素: 1
刪除元素: 1
更新后的 Queue: [2, 5]

要了解更多信息,請訪問Java PriorityQueue。

在接下來的教程中,我們將詳細了解該Queue接口的不同子接口及其實現(xiàn)。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清