Classe ArrayDeque de Java : Guide pour Débutants

Introduction

Salut les futurs magiciens Java ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde de la classe ArrayDeque de Java. Je sais ce que vous pouvez penser : "Deque ? C'est un mot français chique ?" Eh bien, pas exactement ! Dans le domaine de la programmation, un deque (prononcé "deck") signifie une file double extrémité. C'est comme une file à une attraction de carnaval où les gens peuvent se joindre ou partir des deux extrémités. C'est cool, non ?

Java -  ArrayDeque

ArrayDeque est l'implémentation de Java de l'interface Deque, et c'est un outil puissant dans votre boîte à outils de programmation. C'est comme avoir un couteau suisse pour le stockage et la manipulation des données. Alors, bouclez vos ceintures et plongeons-y !

Déclaration de la Classe ArrayDeque

Avant de commencer à utiliser ArrayDeque, nous devons savoir comment la déclarer. C'est vraiment simple. Voici comment le faire :

import java.util.ArrayDeque;

ArrayDeque<Integer> numbers = new ArrayDeque<Integer>();

Dans cet exemple, nous créons une ArrayDeque qui stockera des objets Integer. Mais ne vous inquiétez pas, ArrayDeque est flexible - vous pouvez l'utiliser avec n'importe quel type d'objet !

Constructeurs de la Classe ArrayDeque

ArrayDeque vient avec trois constructeurs. Pensez aux constructeurs comme des différentes manières de construire votre deque :

  1. ArrayDeque() : Crée une deque vide avec une capacité initiale de 16 éléments.
  2. ArrayDeque(int numElements) : Crée une deque avec la capacité initiale spécifiée.
  3. ArrayDeque(Collection<? extends E> c) : Crée une deque contenant les éléments de la collection spécifiée.

Voyons ces exemples en action :

// Constructeur par défaut
ArrayDeque<String> fruits1 = new ArrayDeque<>();

// Constructeur avec capacité initiale
ArrayDeque<String> fruits2 = new ArrayDeque<>(20);

// Constructeur avec une collection
ArrayList<String> fruitList = new ArrayList<>();
fruitList.add("Pomme");
fruitList.add("Banane");
ArrayDeque<String> fruits3 = new ArrayDeque<>(fruitList);

Méthodes de la Classe ArrayDeque

Maintenant, examinons algumas des méthodes les plus couramment utilisées dans ArrayDeque. J'aime à penser que ces méthodes sont les différents tours que votre couteau suisse peut faire.

Méthode Description
addFirst(E e) Ajoute un élément au début de la deque
addLast(E e) Ajoute un élément à la fin de la deque
offerFirst(E e) Ajoute un élément au début de la deque (renvoie un booléen)
offerLast(E e) Ajoute un élément à la fin de la deque (renvoie un booléen)
removeFirst() Supprime et renvoie le premier élément
removeLast() Supprime et renvoie le dernier élément
pollFirst() Supprime et renvoie le premier élément (ou null si vide)
pollLast() Supprime et renvoie le dernier élément (ou null si vide)
getFirst() Renvoie le premier élément sans le supprimer
getLast() Renvoie le dernier élément sans le supprimer
peekFirst() Renvoie le premier élément sans le supprimer (ou null si vide)
peekLast() Renvoie le dernier élément sans le supprimer (ou null si vide)

Exemple d'Ajout et de Suppression d'Éléments d'une ArrayDeque

Mettons notre nouvelle connaissance à l'emploi avec un exemple pratique. Imaginez que nous gérons une liste de tâches où les tâches peuvent être ajoutées ou supprimées des deux extrémités.

import java.util.ArrayDeque;

public class ToDoList {
public static void main(String[] args) {
ArrayDeque<String> tasks = new ArrayDeque<>();

// Ajout de tâches
tasks.addFirst("Se réveiller");
tasks.addLast("Se brosser les dents");
tasks.offerFirst("Régler l'alarme");
tasks.offerLast("Aller au lit");

System.out.println("Tâches actuelles : " + tasks);

// Suppression de tâches
String firstTask = tasks.removeFirst();
String lastTask = tasks.removeLast();

System.out.println("Première tâche complétée : " + firstTask);
System.out.println("Dernière tâche complétée : " + lastTask);
System.out.println("Tâches restantes : " + tasks);

// Regarder les tâches
String nextTask = tasks.peekFirst();
String finalTask = tasks.peekLast();

System.out.println("Prochaine tâche : " + nextTask);
System.out.println("Dernière tâche : " + finalTask);
}
}

Décomposons cela :

  1. Nous commençons par créer une ArrayDeque appelée tasks.
  2. Nous ajoutons des tâches en utilisant addFirst(), addLast(), offerFirst() et offerLast(). Notez comment nous pouvons ajouter des tâches aux deux extrémités de la deque.
  3. Nous supprimons ensuite des tâches des deux extrémités en utilisant removeFirst() et removeLast().
  4. Enfin, nous regardons les première et dernière tâches sans les supprimer en utilisant peekFirst() et peekLast().

Sortie

Lorsque vous exécutez ce code, vous verrez quelque chose comme ceci :

Tâches actuelles : [Régler l'alarme, Se réveiller, Se brosser les dents, Aller au lit]
Première tâche complétée : Régler l'alarme
Dernière tâche complétée : Aller au lit
Tâches restantes : [Se réveiller, Se brosser les dents]
Prochaine tâche : Se réveiller
Dernière tâche : Se brosser les dents

Et voilà ! Vous avez juste créé, manipulé et exploré une ArrayDeque. Très propre, non ?

N'oubliez pas, la pratique fait le maître. Essayez de créer votre propre ArrayDeque et expérimentez avec différentes méthodes. Vous pourriez créer un gestionnaire de playlists, un suivi de l'historique de navigateur ou même un simple système undo/redo !

ArrayDeque est comme un bon ami - toujours là quand vous en avez besoin, prêt à aider des deux côtés. Alors, n'hésitez pas, apprenez à le connaître mieux, et bientôt vous serez en train de deque comme un pro !

Bon codage, futurs maîtres Java ! ??

Credits: Image by storyset