Dans ce didacticiel, nous allons découvrir l'interface Java Queue et ses méthodes.
L' Queueinterface de l'infrastructure des collections Java fournit les fonctionnalités de la structure de données de file d'attente. Il étend l' Collectioninterface.
Classes qui implémentent la file d'attente
Puisque le Queueest 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' Queueinterface est également étendue par diverses sous-interfaces:
DequeBlockingQueueBlockingDeque

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.Queuepackage 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, ArrayDequeet PriorityQueuerespectivement. Ces objets peuvent utiliser les fonctionnalités de l' Queueinterface.
Méthodes de file d'attente
L' Queueinterface comprend toutes les méthodes de l' Collectioninterface. C'est parce que Collectionc'est la super interface de Queue.
Certaines des méthodes couramment utilisées de l' Queueinterface 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 
nullsi 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 
nullsi 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 Queueen détail les différentes sous- interfaces de l' interface et sa mise en œuvre.








