In questo tutorial, impareremo a conoscere l'interfaccia Deque, come usarla e i suoi metodi.
L' Deque
interfaccia del framework delle collezioni Java fornisce la funzionalità di una coda a doppia estremità. Estende l' Queue
interfaccia.
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à Deque
dell'interfaccia, dobbiamo utilizzare classi che la implementino:
- ArrayDeque
- Lista collegata
Come si usa Deque?
In Java, dobbiamo importare il java.util.Deque
pacchetto 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à Deque
dell'interfaccia.
Metodi di Deque
Poiché Deque
estende l' Queue
interfaccia, eredita tutti i metodi dell'interfaccia Queue.
Oltre ai metodi disponibili Queue
nell'interfaccia, l' Deque
interfaccia 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
false
se il deque è pieno. - offerLast () - Aggiunge l'elemento specificato alla fine del deque. Restituisce
false
se 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
null
se il deque è vuoto. - peekLast () - Restituisce l'ultimo elemento del deque. Restituisce
null
se 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
null
se il deque è vuoto. - pollLast () - Restituisce e rimuove l'ultimo elemento del deque. Restituisce
null
se il deque è vuoto.
Deque as Stack Data Structure
La Stack
classe del Collections
framework Java fornisce l'implementazione dello stack.
Tuttavia, si consiglia di utilizzare Deque
come stack invece della classe Stack. È perché i metodi di Stack
sono sincronizzati.
Ecco i metodi che l' Deque
interfaccia fornisce per implementare lo stack:
push()
- aggiunge un elemento all'inizio di dequepop()
- rimuove un elemento dall'inizio di dequepeek()
- 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.