La interfície anomenada Deque està present al paquet java.util. És el subtipus de la cua de la interfície. El Deque admet l'addició i l'eliminació d'elements dels dos extrems de l'estructura de dades. Per tant, un deque es pot utilitzar com a pila o cua. Sabem que la pila admet l'operació Last In First Out (LIFO) i l'operació First In First Out és compatible amb una cua. Com que un deque admet ambdues, es pot realitzar qualsevol de les operacions esmentades. Deque és un acrònim de 'cua de doble final'.
Declaració de la interfície Deque
public interface Deque extends Queue
Mètodes de la interfície Java Deque
Mètode | Descripció |
---|---|
afegir booleà (objecte) | S'utilitza per inserir l'element especificat en aquest deque i retornar true en cas d'èxit. |
oferta booleana (objecte) | S'utilitza per inserir l'element especificat en aquest deque. |
Eliminar objecte() | S'utilitza per recuperar i treure el cap d'aquest deque. |
Enquesta d'objectes() | S'utilitza per recuperar i eliminar el cap d'aquest deque, o retorna null si aquest deque està buit. |
Element d'objecte() | S'utilitza per recuperar, però no treu, el cap d'aquest deque. |
Vista de l'objecte() | S'utilitza per recuperar, però no elimina, el cap d'aquest deque, o retorna nul si aquest deque està buit. |
Objecte peekFirst() | El mètode retorna l'element principal del deque. El mètode no elimina cap element del deque. Aquest mètode retorna Null quan el deque està buit. |
Objecte peekLast() | El mètode retorna l'últim element del deque. El mètode no elimina cap element del deque. Aquest mètode retorna Null quan el deque està buit. |
Oferta booleanaPrimer(e) | Insereix l'element e al capdavant de la cua. Si la inserció és correcta, es retorna true; en cas contrari, fals. |
Oferta d'objectesLast(e) | Insereix l'element e a la cua de la cua. Si la inserció és correcta, es retorna true; en cas contrari, fals. |
Classe ArrayDeque
Sabem que no és possible crear un objecte d'una interfície en Java. Per tant, per a la instanciació, necessitem una classe que implementi la interfície Deque, i aquesta classe és ArrayDeque. Creix i es redueix segons l'ús. També hereta la classe AbstractCollection.
Els punts importants sobre la classe ArrayDeque són:
- A diferència de Queue, podem afegir o eliminar elements d'ambdós costats.
- Els elements nuls no es permeten a ArrayDeque.
- ArrayDeque no és segur per a threads, en absència de sincronització externa.
- ArrayDeque no té restriccions de capacitat.
- ArrayDeque és més ràpid que LinkedList i Stack.
Jerarquia ArrayDeque
La jerarquia de la classe ArrayDeque es mostra a la figura que es mostra a la part dreta de la pàgina.
codi de mostra java
Declaració de classe ArrayDeque
Vegem la declaració de la classe java.util.ArrayDeque.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Exemple de Java ArrayDeque
Nom de l'arxiu: ArrayDequeExample.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); } } }
Sortida:
Ravi Vijay Ajay
Exemple Java ArrayDeque: offerFirst() i pollLast()
Nom de l'arxiu: 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); } } }
Sortida:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Java ArrayDeque Exemple: llibre
Nom de l'arxiu: ArrayDequeExample.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); } } }
Sortida:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6