English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Grund教程

Java Flusskontrolle

Java Array

Java objektorientiert (I)

Java objektorientiert (II)

Java objektorientiert (III)

Java Ausnahmebehandlung

Java Liste (List)

Java Queue (Warteschlange)

Java Map-Kollektion

Java Set-Kollektion

Java Eingabe-Ausgabe (I/O)

Java Reader/Writer

Andere Themen von Java

Java Queue Interface

In diesem Tutorial werden wir die Java Queue-Schnittstelle und ihre Methoden lernen.

Die Queue-Schnittstelle der Java Collection-Framework bietet die Funktionen der Queue-Datenstruktur. Sie erbt die Collection-Schnittstelle.

Klassen, die die Warteschlange implementieren

Da Queue eine Schnittstelle ist, können wir keine direkte Implementierung bereitstellen.

Um die Funktionen von Queue zu verwenden, müssen wir die Klasse verwenden, die sie implementiert:

Schnittstelle, die Queue vererbt

Die Queue-Schnittstelle kann von verschiedenen Unterinterfaces vererbt werden:

  • Deque

  • BlockingQueue

  • BlockingDeque

Arbeitsablauf der Queue-Datenstruktur

In der Warteschlange, mitFirst In First OutArt und Weise speichern und auf Elemente zugreifen. Das bedeutet also,Elemente von hinten hinzufügen, von vorne entfernen.

Wie verwendet man die Warteschlange (Queue)?

In Java müssen Sie das Paket java.util.Queue importieren, um Queue zu verwenden.

// Verwenden Sie LinkedList zum Erstellen
Queue<String> animal1 = new LinkedList<>();
// mit ArrayDeque erstellen
Queue<String> animal2 = new ArrayDeque<>();
// mit PriorityQueue erstellen
Queue<String> animal 3 = new PriorityQueue<>();

Hier haben wir separate Objekte der Klassen LinkedList, ArrayDeque und PriorityQueue für Animal erstellt1und Animal2und Animal3. Diese Objekte können die Funktionen des Queue-Interfaces nutzen.

Methoden des Queue-Interfaces

Das Queue-Interface enthält alle Methoden des Collection-Interfaces. Dies liegt daran, dass Collection das Super-Interface von Queue ist.

Einige der häufig verwendeten Methoden des Queue-Interfaces sind:

  • add() - Einfügen des angegebenen Elements in die Warteschlange. Gibt add() bei Erfolg true zurück, sonst wird eine Ausnahme ausgelöst.

  • offer() - Einfügen des angegebenen Elements in die Warteschlange. Gibt offer() bei Erfolg true zurück, sonst false.

  • element() - Rückgabe des Elements an der Spitze der Warteschlange. Wenn die Warteschlange leer ist, wird eine Ausnahme ausgelöst.

  • peek() - Rückgabe des Elements an der Spitze der Warteschlange. Wenn die Warteschlange leer ist, wird null zurückgegeben.

  • remove() - Rückgabe und Entfernung des Elements an der Spitze der Warteschlange. Wenn die Warteschlange leer ist, wird eine Ausnahme ausgelöst.

  • poll() - Rückgabe und Entfernung des Elements an der Spitze der Warteschlange. Wenn die Warteschlange leer ist, wird null zurückgegeben.

Implementierung des Warteschlangen-Interfaces

1. Implementierung der Klasse LinkedList

import java.util.Queue;
import java.util.LinkedList;
class Main {
    public static void main(String[] args) {
        // Eine Warteschlange mit der Klasse LinkedList erstellen
        Queue<Integer> numbers = new LinkedList<>();
        //Element hinzufügen zur Warteschlange
        numbers.offer(1);
        numbers.offer(2);
        numbers.offer(3);
        System.out.println("Warteschlange: " + numbers);
        // Elemente der Warteschlange Queue abrufen
        int accessedNumber = numbers.peek();
        System.out.println("Gefragtes Element: "); + accessedNumber);
        //Element aus der Warteschlange Queue
        int removedNumber = numbers.poll();
        System.out.println("Gelöschtes Element: "); + removedNumber);
        System.out.println("Aktualisierte Queue: "); + numbers);
    }
}

Ausgabeergebnis

Queue: [1, 2, 3]
Elemente abrufen: 1
Element löschen: 1
Aktualisierte Queue: [2, 3]

Für weitere Informationen besuchen Sie bitteJava LinkedList.

2. Implementierung der Klasse PriorityQueue

import java.util.Queue;
import java.util.PriorityQueue;
class Main {
    public static void main(String[] args) {
        // Eine Warteschlange mit der Klasse PriorityQueue erstellen 
        Queue<Integer> numbers = new PriorityQueue<>();
        //Element hinzufügen zur Warteschlange
        numbers.offer(5);
        numbers.offer(1);
        numbers.offer(2);
        System.out.println("Warteschlange: " + numbers);
        //Element der Queue aufrufen
        int accessedNumber = numbers.peek();
        System.out.println("Gefragtes Element: "); + accessedNumber);
        //Element aus Queue löschen
        int removedNumber = numbers.poll();
        System.out.println("Gelöschtes Element: "); + removedNumber);
        System.out.println("Aktualisierte Queue: "); + numbers);
    }
}

Ausgabeergebnis

Queue: [1, 5, 2]
Element aufrufen: 1
Element löschen: 1
Aktualisierte Queue: [2, 5]

Für weitere Informationen besuchen Sie bitteJava PriorityQueue.

In den kommenden Tutorials werden wir die verschiedenen Unterinterfaces und Implementierungen der Queue-Schnittstelle im Detail kennenlernen.