Sučelje pod nazivom Deque prisutno je u paketu java.util. To je podvrsta reda čekanja sučelja. Deque podržava dodavanje, kao i uklanjanje elemenata s oba kraja strukture podataka. Stoga se deque može koristiti kao stog ili red. Znamo da stog podržava operaciju zadnji ušao, prvi izašao (LIFO), a operaciju prvi ušao, prvi izašao podržava red čekanja. Kako deque podržava oboje, na njemu se može izvesti bilo koja od navedenih operacija. Deque je akronim za 'dvostruki red čekanja'.
Deklaracija sučelja Deque
public interface Deque extends Queue
Metode Java Deque sučelja
metoda | Opis |
---|---|
Booleov dodatak (objekt) | Koristi se za umetanje navedenog elementa u ovaj deque i vraćanje true nakon uspjeha. |
Booleova ponuda (objekt) | Koristi se za umetanje navedenog elementa u ovaj deque. |
Ukloni objekt() | Koristi se za dohvaćanje i uklanjanje glave ovog dequea. |
Anketa objekta() | Koristi se za dohvaćanje i uklanjanje glave ovog deque-a ili vraća null ako je ovaj deque prazan. |
Element objekta() | Koristi se za dohvaćanje, ali ne uklanjanje glave ovog dequea. |
Objekt peek() | Koristi se za dohvaćanje, ali ne uklanja, glavu ovog deque-a ili vraća null ako je ovaj deque prazan. |
Objekt peekFirst() | Metoda vraća glavni element dequea. Metoda ne uklanja nijedan element iz dequea. Ova metoda vraća null kada je deque prazan. |
Objekt peekLast() | Metoda vraća posljednji element dequea. Metoda ne uklanja nijedan element iz dequea. Ova metoda vraća null kada je deque prazan. |
Booleova ponudaFirst(e) | Umeće element e na početak reda čekanja. Ako je umetanje uspješno, vraća se true; inače, lažno. |
Ponuda objekta Zadnja(e) | Umeće element e na rep reda čekanja. Ako je umetanje uspješno, vraća se true; inače, lažno. |
Klasa ArrayDeque
Znamo da nije moguće stvoriti objekt sučelja u Javi. Stoga nam je za instanciranje potrebna klasa koja implementira Deque sučelje, a ta klasa je ArrayDeque. Raste i smanjuje se ovisno o upotrebi. Također nasljeđuje klasu AbstractCollection.
Važne točke o klasi ArrayDeque su:
- Za razliku od Queuea, možemo dodati ili ukloniti elemente s obje strane.
- Null elementi nisu dopušteni u ArrayDeque.
- ArrayDeque nije niti siguran, u nedostatku vanjske sinkronizacije.
- ArrayDeque nema ograničenja kapaciteta.
- ArrayDeque je brži od LinkedLista i Stacka.
ArrayDeque hijerarhija
Hijerarhija klase ArrayDeque dana je na slici prikazanoj na desnoj strani stranice.
što je myspace
Deklaracija klase ArrayDeque
Pogledajmo deklaraciju za klasu java.util.ArrayDeque.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Primjer Java ArrayDeque
Naziv datoteke: 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); } } }
Izlaz:
Ravi Vijay Ajay
Primjer Java ArrayDeque: offerFirst() i pollLast()
Naziv datoteke: 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); } } }
Izlaz:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Primjer Java ArrayDeque: Knjiga
Naziv datoteke: 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); } } }
Izlaz:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6