FIFO-Warteschlange in Java
Eine Warteschlange ist eine lineare Datenstruktur, die das First-in-First-out-Konzept implementiert. Das Konzept bedeutet, dass die Elemente, die zuerst eintreten, als Erste herauskommen.
Die Fachbegriffe zur Darstellung der Queue
verwenden das vordere und hintere Ende. Die Elemente werden vom hinteren Ende der Queue
hinzugefügt und von vorne entnommen.
Das reale Beispiel des Konzepts ist die Ticketschalterreihe, bei der die Person, die an erster Stelle steht, zuerst das Ticket erhält. In Java wird nun das Konzept bzw. die Datenstruktur in der Queue
-Schnittstelle implementiert. Die Schnittstelle ist im Paket java.util
vorhanden.
Unten ist der Codeblock, der die Warteschlangenstruktur demonstriert.
package F10;
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue queue = new LinkedList<String>();
queue.add("First");
queue.add("Second");
queue.add("third");
System.out.println("Created Queue: " + queue);
String value = (String) queue.remove();
System.out.println("The element deleted from the head is: " + value);
System.out.println("The queue after deletion: " + queue);
String head = (String) queue.peek();
System.out.println("The head of the present queue is: " + head);
int size = queue.size();
System.out.println("The size of the queue is: " + size);
}
}
Es gibt verschiedene Möglichkeiten, die Datenstruktur Queue
in Java zu implementieren. Im obigen Codeblock setzt die Verwendung von LinkedList
das Konzept um.
Zuerst wird eine Queue
-Referenz mit dem new LinkedList
-Statement instanziiert. In der Schnittstelle Queue
ist die Methode add
vorhanden, die das angegebene Element in die Queue
einfügt. Die Funktion gibt Boolean true
zurück, wenn der Wert angehängt wird.
Die Methode kann die IllegalStateException
auslösen, wenn das Element aufgrund von Größenbeschränkungen nicht hinzugefügt werden kann. Es wirft auch NullPointerException
, wenn der übergebene Wert null ist. Wenn der Anfangssatz von Elementen an die Liste angehängt wird, wird die Warteschlange gedruckt. Die Anweisung System.out.println
nimmt den String, der gedruckt werden soll.
Als nächstes wird die Funktion remove
über die Instanz Queue
aufgerufen. Es entfernt das Element am Kopf der Warteschlange und gibt daher das Kopfelement zurück.
Es gibt eine ähnliche poll
-Funktion, die auch das auf dem Kopf vorhandene Element entfernt. Der einzige Unterschied liegt in der Funktion remove
, die NoSuchElementException
auslöst, wenn die Queue leer ist. Die entfernten Werte werden in einer Variablen gespeichert und gedruckt. Die verbleibende Warteschlange wird gedruckt, um die verbleibenden Elemente zu überprüfen.
Die Funktion peek
ruft das oberste Element in der Warteschlange ab und entfernt es nicht; es ist eine Möglichkeit, das Element am Kopf der Warteschlange zu überprüfen. Die Funktion gibt den Head-Wert zurück und wirft NoSuchElementException
, wenn die Queue leer ist. Die Funktion size
ist im Interface Collection
vorhanden und gibt die Grösse der Collection zurück. Diese Methode druckt also die Größe der übrig gebliebenen Elemente in der Warteschlange.
Ausgabe:
Created Queue: [First, Second, third]
The element deleted from the head is: First
The Queue after deletion: [Second, third]
The head of the present Queue is: Second
The size of the Queue is: 2
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn