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

Java Grundlegende Anleitung

Java Flusskontrolle

Java Array

Java objektorientiert (I)

Java objektorientiert (II)

Java objektorientiert (III)

Java Ausnahmebehandlung

Java Liste (Liste)

Java Queue (Warteschlange)

Java Map-Kollektion

Java Set-Kollektion

Java Eingabe/Ausgabe (I/O)

Java Reader/Writer

Andere Themen von Java

Java Deque Interface

In diesem Tutorial werden wir das Deque-Interface, wie man es verwendet und seine Methoden, lernen.

Das Deque-Interface der Java Collection Framework bietet die Funktionen der doppelten Warteschlange (Deque). Es vererbt das Queue-Interface.

Arbeitsweise der doppelten Warteschlange

In der regulären Warteschlange werden Elemente hinten hinzugefügt und vorne entfernt. Aber in der doppelten Warteschlange können wirEinfügen und Entfernen von Elementen von vorne und hinten.

Klassen, die Deque implementieren

Um die Funktionen der Deque-Schnittstelle zu nutzen, müssen wir Klassen verwenden, die das Interface implementieren:

Wie verwendet man Deque?

In Java müssen wir das Paket java.util.Deque importieren, um Deque zu verwenden.

Deque<String> animal1 = new ArrayDeque<>();
Deque<String> animal2 = new LinkedList<>();

Hier haben wir die Objekte der Klassen ArrayDeque und LinkedList für animal getrennt erstellt1und animal2. Diese Objekte können die Funktionen der Deque-Schnittstelle nutzen.

Methoden der doppelten Warteschlange

Da Deque das Queue-Interface vererbt, erbt esdes Queue-InterfacesAlle Methoden.

Neben den Methoden, die im Queue-Interface verfügbar sind, umfasst die Deque-Schnittstelle auch folgende Methoden:

  • addFirst() - Fügen Sie das angegebene Element an den Anfang der doppelten Warteschlange hinzu. Wenn die doppelte Warteschlange voll ist, wird eine Ausnahme ausgelöst.

  • addLast() - Fügen Sie das angegebene Element am Ende der doppelten Warteschlange hinzu. Wenn die doppelte Warteschlange voll ist, wird eine Ausnahme ausgelöst.

  • offerFirst() - Fügen Sie das angegebene Element an den Anfang der doppelten Warteschlange hinzu. Wenn die doppelte Warteschlange voll ist, wird false zurückgegeben.

  • offerLast() - Fügen Sie das angegebene Element am Ende der Double-Ended Queue hinzu. Wenn die Double-Ended Queue voll ist, wird false zurückgegeben.

  • getFirst() - Geben Sie den ersten Element der Double-Ended Queue zurück. Wenn die Double-Ended Queue leer ist, wird eine Ausnahme ausgelöst.

  • getLast() - Geben Sie den letzten Element der Double-Ended Queue zurück. Wenn die Double-Ended Queue leer ist, wird eine Ausnahme ausgelöst.

  • peekFirst() - Geben Sie den ersten Element der Double-Ended Queue zurück. Wenn die Double-Ended Queue leer ist, wird null zurückgegeben.

  • peekLast() - Geben Sie den letzten Element der Double-Ended Queue zurück. Wenn die Double-Ended Queue leer ist, wird null zurückgegeben.

  • removeFirst() - Geben Sie den ersten Element der Double-Ended Queue zurück und entfernen Sie es. Wenn die Double-Ended Queue leer ist, wird eine Ausnahme ausgelöst.

  • removeLast() - Geben Sie den letzten Element der Double-Ended Queue zurück und entfernen Sie es. Wenn die Double-Ended Queue leer ist, wird eine Ausnahme ausgelöst.

  • pollFirst() - Geben Sie den ersten Element der Double-Ended Queue zurück und entfernen Sie es. Wenn die Double-Ended Queue leer ist, wird null zurückgegeben.

  • pollLast() - Geben Sie den letzten Element der Double-Ended Queue zurück und entfernen Sie es. Wenn die Double-Ended Queue leer ist, wird null zurückgegeben.

Double-Ended Queue als Stack-Datenstruktur

Die Klasse Stack im Java Collections Framework bietet eine Implementierung von Stacks.

Aber es wird empfohlen, Deque als Stack zu verwenden, anstattStack-Klasse. Dies liegt daran, dass die Methoden von Stack synchronisiert sind.

Hier sind die Methoden, die das Deque-Interface bereitstellt, um Stacks zu implementieren:

  • push() - Fügen Sie ein Element am Anfang der Double-Ended Queue hinzu

  • pop() - Entfernen Sie ein Element vom Anfang der Double-Ended Queue

  • peek() - Geben Sie ein Element vom Anfang der Double-Ended Queue zurück

Die Implementierung von Deque in der Klasse ArrayDeque

import java.util.Deque;
import java.util.ArrayDeque;
class Main {
    public static void main(String[] args) {
        // Erstellen Sie eine Deque mit der Klasse ArrayDeque 
        Deque<Integer> numbers = new ArrayDeque<>();
        //Fügen Sie Elemente zur Deque hinzu
        numbers.offer(1);
        numbers.offerLast(2);
        numbers.offerFirst(3);
        System.out.println("Deque: " + "\t" + zahlen);
        //Zugriff auf die Elemente der Deque
        int firstElement = numbers.peekFirst();
        System.out.println("erster Element: " + "\t" + erstesElement);
        int letzterElement = zahlen.peekLast();
        System.out.println("Letztes Element: " + letzteElement);
        //Element aus Deque entfernen
        int entfernterZahl1 = zahlen.pollFirst();
        System.out.println("Erstes Element entfernen: " + entfernterZahl1);
        int entfernterZahl2 = zahlen.pollLast();
        System.out.println("Letztes Element entfernen: " + entfernterZahl2);
        System.out.println("Aktualisierte Deque: " + zahlen);
    }
}

Ausgaberesultat

Deque: [3, 1, 2]
Erstes Element: 3
Letztes Element: 2
Erstes Element entfernen: 3
Letztes Element entfernen: 2
Aktualisierte Deque: [1]

Für weitere Informationen besuchen Sie bitteJava ArrayDeque.