亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java Queue 接口

在本教程中,我們將學(xué)習(xí)Java Queue接口及其方法。

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

實(shí)現(xiàn)隊(duì)列的類

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

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

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

繼承Queue的接口

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

  • Deque

  • BlockingQueue

  • BlockingDeque

Deque,BlockingQueue和BlockingDeque擴(kuò)展了Queue接口。

隊(duì)列數(shù)據(jù)結(jié)構(gòu)的工作流程

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

隊(duì)列數(shù)據(jù)結(jié)構(gòu)的工作:先進(jìn)先出。

如何使用隊(duì)列(Queue)?

在Java中,必須導(dǎo)入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接口的所有方法。 這是因?yàn)镃ollection是Queue的超級接口。

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

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

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

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

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

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

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

隊(duì)列接口的實(shí)現(xiàn)

1.實(shí)現(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);

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

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

輸出結(jié)果

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

要了解更多信息,請?jiān)L問Java LinkedList。

2.實(shí)現(xiàn)PriorityQueue類

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

class Main {

    public static void main(String[] args) {
        // 使用PriorityQueue類創(chuàng)建隊(duì)列 
        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);
    }
}

輸出結(jié)果

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

要了解更多信息,請?jiān)L問Java PriorityQueue。

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