English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Impariamo l'interfaccia Deque, come utilizzarla e i suoi metodi in questo tutorial.
L'interfaccia Deque della Java Collection Framework fornisce le funzionalità della coda a due estremità (Deque). Eredita l'interfaccia Queue.
Nella coda standard, gli elementi vengono aggiunti dall'estremità posteriore e rimossi dall'estremità anteriore. Tuttavia, nella coda a due estremità, possiamoInserimento e rimozione di elementi da entrambi i lati.
Per utilizzare le funzionalità dell'interfaccia Deque, dobbiamo utilizzare le classi che implementano l'interfaccia:
In Java, dobbiamo importare il pacchetto java.util.Deque per utilizzare Deque.
Deque<String> animal1 = new ArrayDeque<>(); Deque<String> animal2 = new LinkedList<>();
In questo esempio, abbiamo creato gli oggetti della classe ArrayDeque e LinkedList animal1 e animal2. Questi oggetti possono utilizzare le funzionalità dell'interfaccia Deque.
Poiché Deque eredita l'interfaccia Queue, ereditadell'interfaccia QueueTutti i metodi.
Oltre ai metodi disponibili nell'interfaccia Queue, l'interfaccia Deque include anche i seguenti metodi:
addFirst() - Aggiunge l'elemento specificato all'inizio della coda a due estremità. Se la coda a due estremità è piena, viene lanciata un'eccezione.
addLast() - Aggiunge l'elemento specificato alla fine della coda a due estremità. Se la coda a due estremità è piena, viene lanciata un'eccezione.
offerFirst() - Aggiunge l'elemento specificato all'inizio della coda a due estremità. Se la coda a due estremità è piena, viene restituito false.
offerLast() - Aggiunge l'elemento specificato alla fine della coda a due estremità. Se la coda a due estremità è piena, viene restituito false.
getFirst() - Restituisce l'elemento iniziale della coda a due estremità. Se la coda a due estremità è vuota, viene lanciata un'eccezione.
getLast() - restituire l'ultimo elemento della coda a due estremità. Se la coda a due estremità è vuota, sollevare un'eccezione.
peekFirst() - restituire l'elemento dalla testa della coda a due estremità. Se la coda a due estremità è vuota, restituire null.
peekLast() - restituire l'ultimo elemento della coda a due estremità. Se la coda a due estremità è vuota, restituire null.
removeFirst() - restituire e rimuovere l'elemento dalla testa della coda a due estremità. Se la coda a due estremità è vuota, sollevare un'eccezione.
removeLast() - restituire e rimuovere l'ultimo elemento dalla coda a due estremità. Se la coda a due estremità è vuota, sollevare un'eccezione.
pollFirst() - restituire e rimuovere l'elemento dalla testa della coda a due estremità. Se la coda a due estremità è vuota, restituire null.
pollLast() - restituire e rimuovere l'ultimo elemento dalla coda a due estremità. Se la coda a due estremità è vuota, restituire null.
La classe Stack del framework Java Collections fornisce un'implementazione della pila.
Ma si consiglia di utilizzare Deque come pila invece diClasse Stack. Questo è perché i metodi di Stack sono sincronizzati.
Di seguito sono riportati i metodi forniti dall'interfaccia Deque per implementare la pila:
push() - aggiungere un elemento alla testa della coda a due estremità
pop() - rimuovere l'elemento dalla testa della coda a due estremità
peek() - restituire un elemento dalla testa della coda a due estremità
import java.util.Deque; import java.util.ArrayDeque; class Main { public static void main(String[] args) { //usare la classe ArrayDeque per creare una Deque Deque<Integer> numbers = new ArrayDeque<>(); //aggiungere elementi alla Deque numbers.offer(1); numbers.offerLast(2); numbers.offerFirst(3); System.out.println("Deque: " + numbers); //accedere agli elementi della Deque int firstElement = numbers.peekFirst(); System.out.println("primo elemento: " + firstElement); int lastElement = numbers.peekLast(); System.out.println("Ultimo elemento: " + lastElement); //Rimozione dell'elemento dalla Deque int removedNumber1 = numbers.pollFirst(); System.out.println("Rimuovi il primo elemento: " + removedNumber1); int removedNumber2 = numbers.pollLast(); System.out.println("Rimuovi l'ultimo elemento: " + removedNumber2); System.out.println("Deque aggiornato: " + numbers); } }
Risultato di output
Deque: [3, 1, 2] Primo elemento: 3 Ultimo elemento: 2 Rimuovi il primo elemento: 3 Rimuovi l'ultimo elemento: 2 Deque aggiornato: [1]
Per ulteriori informazioni, visitareArrayDeque Java.