Java Deque

Dans ce tutoriel, nous allons en apprendre davantage sur l'interface Deque, comment l'utiliser et ses méthodes.

L' Dequeinterface du framework de collections Java fournit la fonctionnalité d'une file d'attente à deux extrémités. Il étend l' Queueinterface.

Travail de Deque

Dans une file d'attente régulière, les éléments sont ajoutés par l'arrière et supprimés par l'avant. Cependant, dans un deque, nous pouvons insérer et retirer des éléments à la fois avant et arrière .

Classes qui implémentent Deque

Afin d'utiliser les fonctionnalités de l' Dequeinterface, nous devons utiliser des classes qui l'implémentent:

  • ArrayDeque
  • LinkedList

Comment utiliser Deque?

En Java, nous devons importer le java.util.Dequepackage à utiliser Deque.

 // Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList(); 

Ici, nous avons créé les objets animal1 et animal2 des classes ArrayDeque et LinkedList, respectivement. Ces objets peuvent utiliser les fonctionnalités de l' Dequeinterface.

Méthodes de Deque

Depuis Dequeétend l' Queueinterface, il hérite de toutes les méthodes de l'interface Queue.

Outre les méthodes disponibles dans l' Queueinterface, l' Dequeinterface comprend également les méthodes suivantes:

  • addFirst () - Ajoute l'élément spécifié au début du 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 du deque. Renvoie falsesi le deque est plein.
  • offerLast () - Ajoute l'élément spécifié à la fin du deque. Renvoie falsesi le deque est plein.
  • getFirst () - Retourne le premier élément du deque. Lève une exception si le deque est vide.
  • getLast () - Renvoie le dernier élément du deque. Lève une exception si le deque est vide.
  • peekFirst () - Renvoie le premier élément du deque. Retourne nullsi le deque est vide.
  • peekLast () - Renvoie le dernier élément du deque. Retourne nullsi le deque est vide.
  • removeFirst () - Retourne et supprime le premier élément du deque. Lève une exception si le deque est vide.
  • removeLast () - Retourne et supprime le dernier élément du deque. Lève une exception si le deque est vide.
  • pollFirst () - Retourne et supprime le premier élément du deque. Renvoie nullsi le deque est vide.
  • pollLast () - Retourne et supprime le dernier élément du deque. Retourne nullsi le deque est vide.

Deque comme structure de données de pile

La Stackclasse du Collectionsframework Java fournit l'implémentation de la pile.

Cependant, il est recommandé de l'utiliser Dequecomme une pile au lieu de la classe Stack. C'est parce que les méthodes de Stacksont synchronisées.

Voici les méthodes Dequefournies par l' interface pour implémenter la pile:

  • push() - ajoute un élément au début de deque
  • pop() - supprime un élément du début de deque
  • peek() - 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 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); ) ) 

Production

 Deque: (3, 1, 2) Premier élément: 3 Dernier élément: 2 Supprimé Premier élément: 3 Supprimé Dernier élément: 2 Mis à jour Deque: (1) 

Pour en savoir plus, visitez Java ArrayDeque.

Articles intéressants...