Interfața numită Deque este prezentă în pachetul java.util. Este subtipul cozii de interfață. Deque acceptă adăugarea, precum și eliminarea elementelor de la ambele capete ale structurii de date. Prin urmare, un deque poate fi folosit ca o stivă sau o coadă. Știm că stiva acceptă operația Last In First Out (LIFO), iar operația First In First Out este suportată de o coadă. Deoarece un deque le suportă pe ambele, oricare dintre operațiunile menționate poate fi efectuată asupra acestuia. Deque este un acronim pentru „coadă dublă terminată”.
Declarație de interfață Deque
public interface Deque extends Queue
Metode de interfață Java Deque
Metodă | Descriere |
---|---|
adăugare booleană (obiect) | Este folosit pentru a insera elementul specificat în acest deque și pentru a returna adevărat după succes. |
ofertă booleană (obiect) | Este folosit pentru a introduce elementul specificat în acest deque. |
Eliminare obiect() | Este folosit pentru a prelua și îndepărta capul acestui deque. |
Sondaj obiect() | Este folosit pentru a prelua și elimina capul acestui deque sau returnează null dacă acest deque este gol. |
Element obiect() | Este folosit pentru a recupera, dar nu îndepărtează, capul acestui deque. |
Privire obiect() | Este folosit pentru a prelua, dar nu elimină, capul acestui deque, sau returnează null dacă acest deque este gol. |
Obiect peekFirst() | Metoda returnează elementul head al deque. Metoda nu elimină niciun element din deque. Null este returnat prin această metodă, când deque-ul este gol. |
Obiect peekLast() | Metoda returnează ultimul element al dequei. Metoda nu elimină niciun element din deque. Null este returnat prin această metodă, când deque-ul este gol. |
Oferta booleanăPrimul(e) | Inserează elementul e în partea din față a cozii. Dacă inserarea are succes, se returnează true; altfel, fals. |
Oferta obiectUltima(e) | Inserează elementul e la coada cozii. Dacă inserarea are succes, se returnează true; altfel, fals. |
Clasa ArrayDeque
Știm că nu este posibil să se creeze un obiect al unei interfețe în Java. Prin urmare, pentru instanțiere, avem nevoie de o clasă care implementează interfața Deque, iar acea clasă este ArrayDeque. Crește și se micșorează în funcție de utilizare. De asemenea, moștenește clasa AbstractCollection.
Punctele importante despre clasa ArrayDeque sunt:
- Spre deosebire de Queue, putem adăuga sau elimina elemente din ambele părți.
- Elementele nule nu sunt permise în ArrayDeque.
- ArrayDeque nu este thread safe, în absența sincronizării externe.
- ArrayDeque nu are restricții de capacitate.
- ArrayDeque este mai rapid decât LinkedList și Stack.
Ierarhia ArrayDeque
Ierarhia clasei ArrayDeque este dată în figura afișată în partea dreaptă a paginii.
inițializator de dicționar c#
Declarație de clasă ArrayDeque
Să vedem declarația pentru clasa java.util.ArrayDeque.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Exemplu Java ArrayDeque
Nume de fișier: 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); } } }
Ieșire:
Ravi Vijay Ajay
Exemplu Java ArrayDeque: offerFirst() și pollLast()
Nume de fișier: 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); } } }
Ieșire:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Java ArrayDeque Exemplu: Carte
Nume de fișier: 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); } } }
Ieșire:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6