L'interfaccia denominata Deque è presente nel pacchetto java.util. È il sottotipo della coda dell'interfaccia. La Deque supporta l'aggiunta e la rimozione di elementi da entrambe le estremità della struttura dati. Pertanto, una deque può essere utilizzata come stack o coda. Sappiamo che lo stack supporta l'operazione Last In First Out (LIFO) e l'operazione First In First Out è supportata da una coda. Poiché una deque supporta entrambi, su di essa è possibile eseguire entrambe le operazioni menzionate. Deque è l'acronimo di 'coda a doppia estremità'.
Dichiarazione dell'interfaccia Deque
public interface Deque extends Queue
Metodi dell'interfaccia Java Deque
Metodo | Descrizione |
---|---|
aggiunta booleana(oggetto) | Viene utilizzato per inserire l'elemento specificato in questa deque e restituire true in caso di successo. |
offerta booleana(oggetto) | Viene utilizzato per inserire l'elemento specificato in questa deque. |
Rimuovi oggetto() | Viene utilizzato per recuperare e rimuovere la testa di questa deque. |
Sondaggio oggetto() | Viene utilizzato per recuperare e rimuovere l'intestazione di questa deque oppure restituisce null se questa deque è vuota. |
Elemento oggetto() | Viene utilizzato per recuperare, ma non rimuovere, la testa di questa deque. |
Sbirciatina dell'oggetto() | Viene utilizzato per recuperare, ma non rimuovere, l'intestazione di questa deque o restituisce null se questa deque è vuota. |
Sbirciatina dell'oggettoFirst() | Il metodo restituisce l'elemento head della deque. Il metodo non rimuove alcun elemento dalla deque. Null viene restituito da questo metodo quando la deque è vuota. |
Sbirciatina oggettoUltimo() | Il metodo restituisce l'ultimo elemento della deque. Il metodo non rimuove alcun elemento dalla deque. Null viene restituito da questo metodo quando la deque è vuota. |
offerta booleanaFirst(e) | Inserisce l'elemento e all'inizio della coda. Se l'inserimento ha esito positivo, viene restituito true; altrimenti falso. |
Oggetto offertaUltimo(e) | Inserisce l'elemento e in coda alla coda. Se l'inserimento ha esito positivo, viene restituito true; altrimenti falso. |
Classe ArrayDeque
Sappiamo che non è possibile creare un oggetto di un'interfaccia in Java. Pertanto, per l'istanziazione, abbiamo bisogno di una classe che implementi l'interfaccia Deque e quella classe è ArrayDeque. Cresce e si restringe in base all'utilizzo. Eredita anche la classe AbstractCollection.
I punti importanti sulla classe ArrayDeque sono:
- A differenza di Queue, possiamo aggiungere o rimuovere elementi da entrambi i lati.
- Gli elementi null non sono consentiti in ArrayDeque.
- ArrayDeque non è thread-safe, in assenza di sincronizzazione esterna.
- ArrayDeque non ha limiti di capacità.
- ArrayDeque è più veloce di LinkedList e Stack.
Gerarchia ArrayDeque
La gerarchia della classe ArrayDeque è riportata nella figura visualizzata sul lato destro della pagina.
formica importata
Dichiarazione della classe ArrayDeque
Vediamo la dichiarazione per la classe java.util.ArrayDeque.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Esempio di Java ArrayDeque
Nome del file: ArrayDequeEsempio.java
import java.util.*; public class ArrayDequeExample { public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Ravi'); deque.add('Vijay'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } }
Produzione:
Ravi Vijay Ajay
Esempio Java ArrayDeque: offerFirst() e pollLast()
Nome del file: DequeExample.java
import java.util.*; public class DequeExample { public static void main(String[] args) { Deque deque=new ArrayDeque(); deque.offer('arvind'); deque.offer('vimal'); deque.add('mukul'); deque.offerFirst('jai'); System.out.println('After offerFirst Traversal...'); for(String s:deque){ System.out.println(s); } //deque.poll(); //deque.pollFirst();//it is same as poll() deque.pollLast(); System.out.println('After pollLast() Traversal...'); for(String s:deque){ System.out.println(s); } } }
Produzione:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Esempio di Java ArrayDeque: Libro
Nome del file: ArrayDequeEsempio.java
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class ArrayDequeExample { public static void main(String[] args) { Deque set=new ArrayDeque(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to Deque set.add(b1); set.add(b2); set.add(b3); //Traversing ArrayDeque for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Produzione:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6