Java Deque

In questo tutorial, impareremo a conoscere l'interfaccia Deque, come usarla e i suoi metodi.

L' Dequeinterfaccia del framework delle collezioni Java fornisce la funzionalità di una coda a doppia estremità. Estende l' Queueinterfaccia.

Lavoro di Deque

In una coda regolare, gli elementi vengono aggiunti dal retro e rimossi dalla parte anteriore. Tuttavia, in un deque, possiamo inserire e rimuovere elementi sia dalla parte anteriore che da quella posteriore .

Classi che implementano Deque

Per poter utilizzare le funzionalità Dequedell'interfaccia, dobbiamo utilizzare classi che la implementino:

  • ArrayDeque
  • Lista collegata

Come si usa Deque?

In Java, dobbiamo importare il java.util.Dequepacchetto da utilizzare Deque.

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

Qui abbiamo creato gli oggetti animal1 e animal2 delle classi ArrayDeque e LinkedList, rispettivamente. Questi oggetti possono utilizzare le funzionalità Dequedell'interfaccia.

Metodi di Deque

Poiché Dequeestende l' Queueinterfaccia, eredita tutti i metodi dell'interfaccia Queue.

Oltre ai metodi disponibili Queuenell'interfaccia, l' Dequeinterfaccia include anche i seguenti metodi:

  • addFirst () - Aggiunge l'elemento specificato all'inizio del deque. Genera un'eccezione se il deque è pieno.
  • addLast () - Aggiunge l'elemento specificato alla fine del deque. Genera un'eccezione se il deque è pieno.
  • offerFirst () - Aggiunge l'elemento specificato all'inizio del deque. Restituisce falsese il deque è pieno.
  • offerLast () - Aggiunge l'elemento specificato alla fine del deque. Restituisce falsese la deque è piena.
  • getFirst () - Restituisce il primo elemento del deque. Genera un'eccezione se il deque è vuoto.
  • getLast () - Restituisce l'ultimo elemento del deque. Genera un'eccezione se il deque è vuoto.
  • peekFirst () - Restituisce il primo elemento del deque. Restituisce nullse il deque è vuoto.
  • peekLast () - Restituisce l'ultimo elemento del deque. Restituisce nullse il deque è vuoto.
  • removeFirst () - Restituisce e rimuove il primo elemento del deque. Genera un'eccezione se il deque è vuoto.
  • removeLast () - Restituisce e rimuove l'ultimo elemento del deque. Genera un'eccezione se il deque è vuoto.
  • pollFirst () - Restituisce e rimuove il primo elemento del deque. Restituisce nullse il deque è vuoto.
  • pollLast () - Restituisce e rimuove l'ultimo elemento del deque. Restituisce nullse il deque è vuoto.

Deque as Stack Data Structure

La Stackclasse del Collectionsframework Java fornisce l'implementazione dello stack.

Tuttavia, si consiglia di utilizzare Dequecome stack invece della classe Stack. È perché i metodi di Stacksono sincronizzati.

Ecco i metodi che l' Dequeinterfaccia fornisce per implementare lo stack:

  • push() - aggiunge un elemento all'inizio di deque
  • pop() - rimuove un elemento dall'inizio di deque
  • peek() - restituisce un elemento dall'inizio di deque

Implementazione di Deque nella 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); ) ) 

Produzione

 Deque: (3, 1, 2) Primo elemento: 3 Ultimo elemento: 2 Primo elemento rimosso: 3 Rimosso Ultimo elemento: 2 Deque aggiornato: (1) 

Per saperne di più, visita Java ArrayDeque.

Articoli interessanti...