Interface de file d'attente Java
Interface de file d'attente Java
Dans ce didacticiel, nous allons découvrir l'interface Java Queue et ses méthodes.
Le Queue
L'interface du framework de collections Java fournit la fonctionnalité de la structure de données de la file d'attente. Il étend le Collection
interface.
Classes qui implémentent la file d'attente
Depuis le Queue
est une interface, nous ne pouvons pas en fournir l'implémentation directe.
Pour utiliser les fonctionnalités de Queue
, nous devons utiliser des classes qui l'implémentent :
- ArrayDeque
- Liste liée
- File d'attente prioritaire
Interfaces qui étendent la file d'attente
Le Queue
l'interface est également étendue par diverses sous-interfaces :
Deque
BlockingQueue
BlockingDeque
Fonctionnement de la structure des données de la file d'attente
Dans les files d'attente, les éléments sont stockés et accessibles dans First In, First Out manière. C'est-à-dire que les éléments sont ajoutés par derrière et retiré de l'avant .
Comment utiliser la file d'attente ?
En Java, il faut importer java.util.Queue
package afin d'utiliser Queue
.
// LinkedList implementation of Queue
Queue<String> animal1 = new LinkedList<>();
// Array implementation of Queue
Queue<String> animal2 = new ArrayDeque<>();
// Priority Queue implementation of Queue
Queue<String> 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 du Queue
interface.
Méthodes de file d'attente
Le Queue
l'interface inclut toutes les méthodes du Collection
interface. C'est parce que Collection
est la super interface de Queue
.
Certaines des méthodes couramment utilisées du Queue
l'interface sont :
- ajouter() - Insère l'élément spécifié dans la file d'attente. Si la tâche réussit,
add()
renvoietrue
, sinon il lève une exception. - offre() - Insère l'élément spécifié dans la file d'attente. Si la tâche réussit,
offer()
renvoietrue
, sinon il renvoiefalse
. - élément() - Renvoie la tête de la file d'attente. Lève une exception si la file d'attente est vide.
- coup d'oeil() - Renvoie la tête de la file d'attente. Renvoie
null
si la file d'attente est vide. - supprimer() - Retourne et supprime la tête de la file d'attente. Lève une exception si la file d'attente est vide.
- sondage() - Retourne 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
import java.util.Queue;
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
// Creating Queue using the LinkedList class
Queue<Integer> 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);
}
}
Sortie
Queue: [1, 2, 3] Accessed Element: 1 Removed Element: 1 Updated Queue: [2, 3]
Pour en savoir plus, visitez Java LinkedList.
import java.util.Queue;
import java.util.PriorityQueue;
class Main {
public static void main(String[] args) {
// Creating Queue using the PriorityQueue class
Queue<Integer> 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);
}
}
Sortie
Queue: [1, 5, 2] Accessed Element: 1 Removed Element: 1 Updated Queue: [2, 5]
Pour en savoir plus, visitez Java PriorityQueue.
Dans les prochains tutoriels, nous découvrirons différentes sous-interfaces du Queue
interface et sa mise en œuvre en détail.
Java