Interface Java Deque
Interface Java Deque
Dans ce didacticiel, nous découvrirons l'interface Deque, son utilisation et ses méthodes.
Le Deque
L'interface du framework de collections Java fournit la fonctionnalité d'une file d'attente à double extrémité. Il étend le Queue
interface.
Travail de Deque
Dans une file d'attente normale, les éléments sont ajoutés par l'arrière et retirés par l'avant. Cependant, dans un deque, nous pouvons insérer et supprimer des éléments à l'avant et à l'arrière .
Classes qui implémentent Deque
Pour utiliser les fonctionnalités du Deque
interface, nous devons utiliser des classes qui l'implémentent :
- ArrayDeque
- Liste liée
Comment utiliser Deque ?
En Java, il faut importer le java.util.Deque
package à utiliser Deque
.
// Array implementation of Deque
Deque<String> animal1 = new ArrayDeque<>();
// LinkedList implementation of Deque
Deque<String> animal2 = new LinkedList<>();
Ici, nous avons créé des objets animal1 et animal2 de classes ArrayDeque et LinkedList , respectivement. Ces objets peuvent utiliser les fonctionnalités du Deque
interface.
Méthodes de Deque
Depuis Deque
étend le Queue
interface, elle hérite de toutes les méthodes de l'interface Queue.
Outre les méthodes disponibles dans le Queue
l'interface, le Deque
l'interface inclut également les méthodes suivantes :
- addFirst() - Ajoute l'élément spécifié au début de la deque. Lève une exception si le deque est plein.
- addLast() - Ajoute l'élément spécifié à la fin de la deque. Lève une exception si le deque est plein.
- offerFirst() - Ajoute l'élément spécifié au début de la deque. Renvoie
false
si la deque est pleine. - offerLast() - Ajoute l'élément spécifié à la fin de la deque. Renvoie
false
si la deque est pleine. - getFirst() - Renvoie le premier élément de la deque. Lève une exception si le deque est vide.
- getLast() - Renvoie le dernier élément de la deque. Lève une exception si le deque est vide.
- peekFirst() - Renvoie le premier élément de la deque. Renvoie
null
si le deque est vide. - peekLast() - Renvoie le dernier élément de la deque. Renvoie
null
si le deque est vide. - supprimerPremier() - Retourne et supprime le premier élément de la deque. Lève une exception si le deque est vide.
- supprimerDernier() - Retourne et supprime le dernier élément de la deque. Lève une exception si le deque est vide.
- pollFirst() - Retourne et supprime le premier élément de la deque. Renvoie
null
si le deque est vide. - pollLast() - Retourne et supprime le dernier élément de la deque. Renvoie
null
si le deque est vide.
Deque en tant que structure de données de pile
Le Stack
classe du Java Collections
framework fournit l'implémentation de la pile.
Cependant, il est recommandé d'utiliser Deque
comme une pile au lieu de la classe Stack. C'est parce que les méthodes de Stack
sont synchronisés.
Voici les méthodes le Deque
interface fournit pour implémenter la pile :
push()
- ajoute un élément au début de dequepop()
- supprime un élément du début de dequepeek()
- renvoie un élément depuis le début de deque
Implémentation de Deque dans la classe ArrayDeque
import java.util.Deque;
import java.util.ArrayDeque;
class Main {
public static void main(String[] args) {
// Creating Deque using the ArrayDeque class
Deque<Integer> numbers = new ArrayDeque<>();
// add elements to the Deque
numbers.offer(1);
numbers.offerLast(2);
numbers.offerFirst(3);
System.out.println("Deque: " + numbers);
// Access elements of the Deque
int firstElement = numbers.peekFirst();
System.out.println("First Element: " + firstElement);
int lastElement = numbers.peekLast();
System.out.println("Last Element: " + lastElement);
// Remove elements from the Deque
int removedNumber1 = numbers.pollFirst();
System.out.println("Removed First Element: " + removedNumber1);
int removedNumber2 = numbers.pollLast();
System.out.println("Removed Last Element: " + removedNumber2);
System.out.println("Updated Deque: " + numbers);
}
}
Sortie
Deque: [3, 1, 2] First Element: 3 Last Element: 2 Removed First Element: 3 Removed Last Element: 2 Updated Deque: [1]
Pour en savoir plus, visitez Java ArrayDeque.
Java