Interface de file d'attente Java

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:

  • 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.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()retourne true, 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()retourne true, sinon elle retourne false.
  • 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.

Articles intéressants...