Maîtriser l'Interface Deque de Java : Fonctionnalités, Méthodes et Exemples Pratiques
Interface Java Deque
Découvrez comment l'interface Deque de Java fournit une file double-entrée polyvalente et apprenez à exploiter ses méthodes puissantes dans du code réel.
Fonctionnement de Deque
Contrairement à une file conventionnelle, qui n'enfile qu'à l'arrière et défile de l'avant, un Deque (double-ended queue) permet d'ajouter et de supprimer des éléments des deux côtés. Cette flexibilité le rend idéal pour les patterns LIFO, FIFO et de gestion de données plus complexes.
Classes Implémentant Deque
Pour travailler avec un Deque, choisissez l'une des implémentations concrètes suivantes :
- ArrayDeque – un tableau redimensionnable offrant un accès rapide, non synchronisé.
- LinkedList – une liste doublement chaînée supportant les éléments null et offrant une performance d'insertion robuste.
Utilisation de Deque dans Votre Code
Importez d'abord l'interface :
import java.util.Deque;
Puis instanciez une classe concrète :
// Implémentation par tableau
Deque<String> animal1 = new ArrayDeque<>();
// Implémentation par LinkedList
Deque<String> animal2 = new LinkedList<>();
Ces objets exposent maintenant toutes les opérations Deque.
Méthodes Clés de Deque
Puisque Deque étend Queue, elle hérite de toutes les méthodes de file. En plus, elle fournit des opérations spécialisées pour les deux extrémités :
- addFirst(e) – Insère
eau début, lève une exception si le deque est plein. - addLast(e) – Ajoute
eà la fin, lève une exception si plein. - offerFirst(e) – Tente d'insérer au début, retourne
falsesi plein. - offerLast(e) – Tente d'ajouter à la fin, retourne
falsesi plein. - getFirst() / getLast() – Récupère le premier/dernier élément, lève une exception si le deque est vide.
- peekFirst() / peekLast() – Récupère le premier/dernier élément, retourne
nullquand vide. - removeFirst() / removeLast() – Supprime et retourne le premier/dernier élément, lève une exception quand vide.
- pollFirst() / pollLast() – Supprime et retourne le premier/dernier élément, retourne
nullsi vide.
Deque comme Pile (Stack)
La classe legacy Stack est synchronisée et moins efficace. Deque offre une alternative moderne, non synchronisée :
push(e)– Ajouteeau début.pop()– Supprime et retourne l'élément du début.peek()– Récupère l'élément du début sans suppression.
Exemple Pratique avec ArrayDeque
import java.util.Deque;
import java.util.ArrayDeque;
class Main {
public static void main(String[] args) {
Deque<Integer> numbers = new ArrayDeque<>();
// Peupler le deque
numbers.offer(1); // queue
numbers.offerLast(2); // queue
numbers.offerFirst(3); // tête
System.out.println("Deque: " + numbers);
// Regarder les deux extrémités
System.out.println("Premier Élément: " + numbers.peekFirst());
System.out.println("Dernier Élément: " + numbers.peekLast());
// Supprimer des éléments
System.out.println("Premier Élément Supprimé: " + numbers.pollFirst());
System.out.println("Dernier Élément Supprimé: " + numbers.pollLast());
System.out.println("Deque Mis à Jour: " + numbers);
}
}
Sortie
Deque: [3, 1, 2] Premier Élément: 3 Dernier Élément: 2 Premier Élément Supprimé: 3 Dernier Élément Supprimé: 2 Deque Mis à Jour: [1]
Pour plus de détails, explorez la documentation officielle Java ArrayDeque.
Java
- Maîtriser les interfaces C# : Définition, implémentation et cas d'utilisation pratiques
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Maîtriser l'interface NavigableSet de Java : Navigation, tri et exemples pratiques
- Interface vs Classe Abstraite en Java : Comment Choisir la Bonne Abstraction
- Comprendre les interfaces Java : Définitions, Usages et Bonnes pratiques
- Java 9 : Méthodes privées dans les interfaces — Encapsulation et réutilisation