English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础Java

Java Controllo dei flussi

Java Array

Java Orientazione agli oggetti (I)

Java Orientazione agli oggetti (II)

Java Orientazione agli oggetti (III)

Gestione delle eccezioni Java

Java List

Java Queue (Coda)

Java Map Collection

Java Set Collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Interfaccia Deque Java

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.

Il funzionamento della coda a due estremità

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.

Classi che implementano Deque

Per utilizzare le funzionalità dell'interfaccia Deque, dobbiamo utilizzare le classi che implementano l'interfaccia:

Come utilizzare Deque?

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.

Metodi della coda a due estremità

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.

Deque come struttura dati pila

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à

Implementazione di Deque nella classe ArrayDeque

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.