Java-wachtrijinterface

In deze zelfstudie leren we over de Java Queue-interface en zijn methoden.

De Queueinterface van het Java-verzamelingsraamwerk biedt de functionaliteit van de wachtrijgegevensstructuur. Het breidt de Collectioninterface uit.

Klassen die Queue implementeren

Aangezien het Queueeen 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 Queueinterface 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.Queuepakket 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, ArrayDequeen PriorityQueuerespectievelijk. Deze objecten kunnen de functionaliteiten van de Queueinterface gebruiken.

Methoden van wachtrij

De Queueinterface bevat alle methoden van de Collectioninterface. Het is omdat het Collectionde superinterface is van Queue.

Enkele van de meest gebruikte methoden van de Queueinterface zijn:

  • add () - Voegt het opgegeven element in de wachtrij in. Als de taak is gelukt, add()keert deze terug true, zo niet, dan genereert het een uitzondering.
  • offer () - Voegt het opgegeven element in de wachtrij in. Als de taak is gelukt, offer()keert hij terug true, zo niet, keert hij terug false.
  • element () - Retourneert de kop van de wachtrij. Genereert een uitzondering als de wachtrij leeg is.
  • peek () - Retourneert de kop van de wachtrij. Retourneert nullals 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 nullals 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 Queuein detail over verschillende subinterfaces van de interface en de implementatie ervan.

Interessante artikelen...