Saskarne ar nosaukumu Deque ir pieejama pakotnē java.util. Tas ir interfeisa rindas apakštips. Deque atbalsta elementu pievienošanu, kā arī noņemšanu no abiem datu struktūras galiem. Tāpēc deque var izmantot kā kaudzi vai rindu. Mēs zinām, ka steks atbalsta operāciju Last In First Out (LIFO) un operāciju First In First Out atbalsta rinda. Tā kā deque atbalsta abus, ar to var veikt jebkuru no minētajām darbībām. Deque ir akronīms vārdam 'dubultā rinda'.
Deque Interface deklarācija
public interface Deque extends Queue
Java deque interfeisa metodes
Metode | Apraksts |
---|---|
Būla pievienošana(objekts) | To izmanto, lai ievietotu norādīto elementu šajā deque un pēc panākumiem atgrieztu patiesu. |
Būla piedāvājums (objekts) | To izmanto, lai šajā dekā ievietotu norādīto elementu. |
Objekta noņemšana () | To izmanto, lai izgūtu un noņemtu šīs dekas galvu. |
Objekta aptauja() | To izmanto, lai izgūtu un noņemtu šīs noliktavas galviņu, vai atgriež nulli, ja šī deque ir tukša. |
Objekta elements() | To izmanto, lai izgūtu, bet nenoņemtu šīs dekas galvu. |
Objekta apskate () | To izmanto, lai izgūtu, bet nenoņemtu šīs noliktavas daļu, vai atgriež nulli, ja šī deque ir tukša. |
Objekts peekFirst() | Metode atgriež deque head elementu. Metode nenoņem nevienu elementu no deque. Ar šo metodi tiek atgriezta nulle, ja deque ir tukša. |
Objekts peekLast() | Metode atgriež pēdējo deque elementu. Metode nenoņem nevienu elementu no deque. Ar šo metodi tiek atgriezta nulle, ja deque ir tukša. |
Būla piedāvājums pirmais(e) | Ievieto elementu e rindas priekšpusē. Ja ievietošana ir veiksmīga, tiek atgriezta taisnība; pretējā gadījumā nepatiesi. |
Objekta piedāvājumsPēdējais(e) | Ievieto elementu e rindas beigās. Ja ievietošana ir veiksmīga, tiek atgriezta taisnība; pretējā gadījumā nepatiesi. |
ArrayDeque klase
Mēs zinām, ka Java nav iespējams izveidot saskarnes objektu. Tāpēc instantiancei mums ir nepieciešama klase, kas ievieš Deque interfeisu, un šī klase ir ArrayDeque. Tas aug un saraujas atkarībā no lietošanas. Tas arī manto AbstractCollection klasi.
Svarīgi punkti par ArrayDeque klasi ir:
- Atšķirībā no rindas, mēs varam pievienot vai noņemt elementus no abām pusēm.
- Nulle elementi nav atļauti ArrayDeque.
- ArrayDeque nav pavediens drošs, ja nav ārējas sinhronizācijas.
- ArrayDeque nav jaudas ierobežojumu.
- ArrayDeque ir ātrāks nekā LinkedList un Stack.
ArrayDeque hierarhija
ArrayDeque klases hierarhija ir parādīta attēlā, kas parādīts lapas labajā pusē.
java koda paraugs
ArrayDeque klases deklarācija
Apskatīsim klases java.util.ArrayDeque deklarāciju.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Java ArrayDeque piemērs
Faila nosaukums: 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); } } }
Izvade:
Ravi Vijay Ajay
Java ArrayDeque piemērs: offerFirst() un pollLast()
Faila nosaukums: 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); } } }
Izvade:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Java ArrayDeque piemērs: grāmata
Faila nosaukums: 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); } } }
Izvade:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6