Enqueue und Dequeue in Java

Haider Ali 12 Oktober 2023
  1. Warteschlange
  2. Warteschlange in Java
  3. Enqueue und Dequeue in Java
Enqueue und Dequeue in Java

Bevor wir uns mit den Konzepten von enqueue und dequeue in Java befassen, lassen Sie uns ein grundlegendes Verständnis des gesamten Konzepts von Queue aufbauen. Was ist es eigentlich? Das Beispiel aus der Praxis und vieles mehr. Tauchen wir ein.

Warteschlange

Die Warteschlange ist im Hinblick auf die Programmierung eine lineare Struktur mit einer unidirektionalen Reihenfolge, durch die dieser Datentyp ausgeführt wird. Die unidirektionale Reihenfolge ist FIFO (first in, first out). Ein Beispiel aus der Praxis wäre die Menschenschlange (Warteschlange), die Sie vor einer Bank sehen. Wer zuerst reinkommt, wird zuerst bedient und geht raus. Wenn wir also in der Programmierung von enqueue und dequeue sprechen, meinen wir das Hinzufügen bzw. Entfernen eines Elements. Schauen Sie sich das Bild unten an.

enqueue und dequeue java

Wie Sie sehen, erfolgt das Hinzufügen (enqueue) in die Warteschlange immer von hinten und das Entfernen (dequeue) immer von vorne. Nachdem Sie nun ein konkretes Verständnis der Warteschlange haben, werfen wir einen Blick auf die Implementierung der Warteschlange in Java.

Warteschlange in Java

In Java wird die Queue als Schnittstelle betrachtet, die durch eine verkettete Liste implementiert wird. Das folgende Codebeispiel zeigt, wie man das Objekt der Warteschlange in Java erstellen kann.

import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface

public class Main {
  public static void main(String[] args) {
    Queue<String> queue = new LinkedList<>();
    // to implement Queue
  }
}

Sie müssen die Klassen von verknüpften Listen und Warteschlangen hinzufügen, um eine in Java zu implementieren. (Siehe oben im Code). Bei der Implementierung von Queue verwenden wir zu diesem Zweck die Linked List. Lassen Sie uns nun die Methoden verstehen, die zum Hinzufügen und Entfernen eines Elements aus der Warteschlange erforderlich sind.

Enqueue und Dequeue in Java

Wie oben erwähnt, ist die Reihenfolge für diese Arten von Operationen FIFO. Also, fügen wir (enqueue) einen Wert in die von uns erstellte Warteschlange ein. Da die Warteschlange ein String ist, würden die folgenden Werte ausreichen.

import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface

public class Main {
  public static void main(String[] args) {
    Queue<String> queue = new LinkedList<>();
    // to implement Queue

    // Adding In Queue  using `add()` method
    queue.add("Bill Gates"); // enque
    queue.add("Mark  Mark Zuckerberg"); // enque
    queue.add("Elon Musk"); // enquue
    queue.add("Jeff Bezos");
    queue.offer("Donald Trump"); // alternatice enque

    System.out.println("Queue : " + queue); // queue print
  }
}

Im obigen Beispiel haben wir mit den folgenden beiden Methoden vier Werte hinzugefügt.

queue.add()

Wie Sie im Code sehen können, haben wir der Warteschlange vier Zeichenkettenwerte hinzugefügt. Eine andere Sache, die Sie über diese Methode wissen sollten, ist, dass sie eine ungeprüfte Ausnahme auslöst. Wenn Ihre Warteschlange beispielsweise eingeschränkt ist, gibt die Methode add() eine Ausnahme zurück, wenn ein weiteres Element hinzugefügt wird, während kein Platz dafür vorhanden ist. Es hängt alles von der Art der Warteschlange ab. Erfahren Sie mehr über Warteschlangen in Java hier.

queue.offer()

Die Methode offer() ist eine Alternative zu add(). Diese spezielle Methode löst keine Ausnahmen aus. Stattdessen gibt es wahre und falsche Werte. Das fünfte Element in der Warteschlange haben wir im obigen Beispiel mit offer() hinzugefügt. Die Ausgabe des obigen Programms sieht wie folgt aus.

Queue : [ Bill Gates, Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump ]

Nachdem Sie nun verstanden haben, wie Sie Elemente in die Queue hinzufügen (enqueue) können. Sehen wir uns an, wie Sie ein Element aus der Warteschlange entfernen können.

queue.remove()

Die Methode remove() wird verwendet, um ein Element aus der Warteschlange zu löschen. Es wird ganz vorne in der Warteschlange bedient. Wenn wir zum Beispiel ein Element aus der obigen Warteschlange entfernen, wäre das erste Element, das entfernt wird, Bill Gates. Sehen Sie sich den folgenden Code an.

import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface

public class Main {
  public static void main(String[] args) {
    Queue<String> queue = new LinkedList<>();
    // to implement Queue

    // Adding In Queue  using `add()` method
    queue.add("Bill Gates"); // enque
    queue.add("Mark  Mark Zuckerberg"); // enque
    queue.add("Elon Musk"); // enquue
    queue.add("Jeff Bezos");
    queue.offer("Donald Trump"); // alternatice enque

    System.out.println("Queue : " + queue); // queue print

    String name = queue.remove(); // Dequeue
    System.out.println("Removed from queue : " + name);
    System.out.println(queue);

    name = queue.poll(); // altrenative deque method
    System.out.println("Removed from queue : " + name);
    System.out.println(queue);
  }
}

Wie Sie im obigen Codebeispiel sehen können, haben wir die Methode remove() verwendet, um ein Element aus der Warteschlange zu löschen. Es wird eine ungeprüfte Ausnahme ausgelöst, wenn Sie versuchen, ein Element aus einer leeren Warteschlange zu löschen.

queue.poll()

Die alternative Methode von remove() ist poll(), die den Wert NULL zurückgibt, wenn ein Element aus einer leeren Warteschlange gelöscht wird. Sehen Sie sich die Ausgabe des obigen Codes an.

Queue : [Bill Gates, Mark  Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump]
Removed from queue : Bill Gates
[Mark  Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump]
Removed from queue : Mark  Mark Zuckerberg
[Elon Musk, Jeff Bezos, Donald Trump]
Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

Verwandter Artikel - Java Queue