Dans ce didacticiel, nous allons découvrir l'interface Java Queue et ses méthodes.
L' Queue
interface de l'infrastructure des collections Java fournit les fonctionnalités de la structure de données de file d'attente. Il étend l' Collection
interface.
Classes qui implémentent la file d'attente
Puisque le Queue
est une interface, nous ne pouvons pas en fournir l'implémentation directe.
Afin d'utiliser les fonctionnalités de Queue
, nous devons utiliser des classes qui l'implémentent:
- ArrayDeque
- LinkedList
- File d'attente de priorité
Interfaces qui étendent la file d'attente
L' Queue
interface est également étendue par diverses sous-interfaces:
Deque
BlockingQueue
BlockingDeque
Fonctionnement de la structure des données de file d'attente
Dans les files d'attente, les éléments sont stockés et accédés de manière premier entré, premier sorti . Autrement dit, les éléments sont ajoutés par l'arrière et supprimés de l'avant .
Comment utiliser Queue?
En Java, nous devons importer le java.util.Queue
package pour pouvoir l'utiliser 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();
Ici, nous avons créé des objets animal1, animal2 et animal3 de classes LinkedList
, ArrayDeque
et PriorityQueue
respectivement. Ces objets peuvent utiliser les fonctionnalités de l' Queue
interface.
Méthodes de file d'attente
L' Queue
interface comprend toutes les méthodes de l' Collection
interface. C'est parce que Collection
c'est la super interface de Queue
.
Certaines des méthodes couramment utilisées de l' Queue
interface sont:
- add () - Insère l'élément spécifié dans la file d'attente. Si la tâche réussit,
add()
retournetrue
, sinon elle lève une exception. - offer () - Insère l'élément spécifié dans la file d'attente. Si la tâche réussit,
offer()
retournetrue
, sinon elle retournefalse
. - element () - Renvoie la tête de la file d'attente. Lève une exception si la file d'attente est vide.
- peek () - Renvoie la tête de la file d'attente. Renvoie
null
si la file d'attente est vide. - remove () - Renvoie et supprime la tête de la file d'attente. Lève une exception si la file d'attente est vide.
- poll () - Renvoie et supprime la tête de la file d'attente. Renvoie
null
si la file d'attente est vide.
Implémentation de l'interface de file d'attente
1. Implémentation de la classe LinkedList
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); ) )
Production
File d'attente: (1, 2, 3) Élément consulté: 1 Élément supprimé: 1 File d'attente mise à jour: (2, 3)
Pour en savoir plus, visitez Java LinkedList.
2. Implémentation de la classe PriorityQueue
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); ) )
Production
File d'attente: (1, 5, 2) Élément consulté: 1 Élément supprimé: 1 File d'attente mise à jour: (2, 5)
Pour en savoir plus, visitez Java PriorityQueue.
Dans les prochains tutoriels, nous découvrirons Queue
en détail les différentes sous- interfaces de l' interface et sa mise en œuvre.