In deze zelfstudie leren we over de Java Queue-interface en zijn methoden.
De Queue
interface van het Java-verzamelingsraamwerk biedt de functionaliteit van de wachtrijgegevensstructuur. Het breidt de Collection
interface uit.
Klassen die Queue implementeren
Aangezien het Queue
een interface is, kunnen we de directe implementatie ervan niet verzorgen.
Om de functionaliteiten van te gebruiken Queue
, moeten we klassen gebruiken die het implementeren:
- ArrayDeque
- LinkedList
- Prioriteits-rij
Interfaces die de wachtrij uitbreiden
De Queue
interface is ook uitgebreid met verschillende subinterfaces:
Deque
BlockingQueue
BlockingDeque
Werking van wachtrijgegevensstructuur
In wachtrijen worden elementen opgeslagen en geopend op de manier First In, First Out . Dat wil zeggen, elementen worden van achteren toegevoegd en van voren verwijderd .
Hoe gebruik ik Queue?
In Java moeten we een java.util.Queue
pakket importeren om Queue
.
// LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue();
Hier hebben we gemaakte objecten animal1, animal2 en animal3 van de klassen LinkedList
, ArrayDeque
en PriorityQueue
respectievelijk. Deze objecten kunnen de functionaliteiten van de Queue
interface gebruiken.
Methoden van wachtrij
De Queue
interface bevat alle methoden van de Collection
interface. Het is omdat het Collection
de superinterface is van Queue
.
Enkele van de meest gebruikte methoden van de Queue
interface zijn:
- add () - Voegt het opgegeven element in de wachtrij in. Als de taak is gelukt,
add()
keert deze terugtrue
, zo niet, dan genereert het een uitzondering. - offer () - Voegt het opgegeven element in de wachtrij in. Als de taak is gelukt,
offer()
keert hij terugtrue
, zo niet, keert hij terugfalse
. - element () - Retourneert de kop van de wachtrij. Genereert een uitzondering als de wachtrij leeg is.
- peek () - Retourneert de kop van de wachtrij. Retourneert
null
als de wachtrij leeg is. - remove () - Retourneert en verwijdert de kop van de wachtrij. Genereert een uitzondering als de wachtrij leeg is.
- poll () - Retourneert en verwijdert de kop van de wachtrij. Retourneert
null
als de wachtrij leeg is.
Implementatie van de wachtrij-interface
1. Implementatie van de LinkedList Class
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // offer elements to the Queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Uitvoer
Wachtrij: (1, 2, 3) Betreden element: 1 verwijderd element: 1 Bijgewerkte wachtrij: (2, 3)
Bezoek Java LinkedList voor meer informatie.
2. Implementatie van de PriorityQueue-klasse
import java.util.Queue; import java.util.PriorityQueue; class Main ( public static void main(String() args) ( // Creating Queue using the PriorityQueue class Queue numbers = new PriorityQueue(); // offer elements to the Queue numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Uitvoer
Wachtrij: (1, 5, 2) Betreden element: 1 verwijderd element: 1 Bijgewerkte wachtrij: (2, 5)
Bezoek Java PriorityQueue voor meer informatie.
In de volgende tutorials leren we Queue
in detail over verschillende subinterfaces van de interface en de implementatie ervan.