Grænsefladen kaldet Deque er til stede i java.util-pakken. Det er undertypen af grænsefladekøen. Deque understøtter tilføjelse samt fjernelse af elementer fra begge ender af datastrukturen. Derfor kan en deque bruges som en stak eller en kø. Vi ved, at stakken understøtter Last In First Out (LIFO) operationen, og operationen First In First Out understøttes af en kø. Da en deque understøtter begge, kan en af de nævnte operationer udføres på den. Deque er et akronym for 'dobbelt afsluttet kø'.
Deque Interface erklæring
public interface Deque extends Queue
Metoder til Java Deque Interface
Metode | Beskrivelse |
---|---|
boolsk tilføjelse(objekt) | Det bruges til at indsætte det angivne element i denne deque og returnere sand ved succes. |
boolesk tilbud (objekt) | Det bruges til at indsætte det angivne element i denne deque. |
Objekt fjern() | Det bruges til at hente og fjerne hovedet på denne deque. |
Objektundersøgelse() | Den bruges til at hente og fjerne hovedet af denne deque, eller returnerer null, hvis denne deque er tom. |
Objektelement() | Det bruges til at hente, men fjerner ikke, hovedet på denne deque. |
Objekt kig() | Det bruges til at hente, men fjerner ikke, hovedet af denne deque, eller returnerer null, hvis denne deque er tom. |
Objekt peekFirst() | Metoden returnerer hovedelementet i deque. Metoden fjerner ikke noget element fra deque. Null returneres ved denne metode, når deque er tom. |
Objekt peekLast() | Metoden returnerer det sidste element i deque. Metoden fjerner ikke noget element fra deque. Null returneres ved denne metode, når deque er tom. |
Boolesk tilbud First(e) | Indsætter elementet e foran i køen. Hvis indsættelsen lykkes, returneres true; ellers falsk. |
Objekttilbud Sidste(e) | Indsætter elementet e i slutningen af køen. Hvis indsættelsen lykkes, returneres true; ellers falsk. |
ArrayDeque klasse
Vi ved, at det ikke er muligt at oprette et objekt af en grænseflade i Java. Derfor har vi brug for en klasse, der implementerer Deque-grænsefladen, og den klasse er ArrayDeque. Det vokser og krymper efter brug. Den arver også klassen AbstractCollection.
De vigtige punkter om ArrayDeque-klassen er:
- I modsætning til Queue kan vi tilføje eller fjerne elementer fra begge sider.
- Null-elementer er ikke tilladt i ArrayDeque.
- ArrayDeque er ikke trådsikkert i mangel af ekstern synkronisering.
- ArrayDeque har ingen kapacitetsbegrænsninger.
- ArrayDeque er hurtigere end LinkedList og Stack.
ArrayDeque-hierarki
Hierarkiet af ArrayDeque-klassen er angivet i figuren vist til højre på siden.
10 millioner
ArrayDeque-klasseerklæring
Lad os se erklæringen for klassen java.util.ArrayDeque.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Java ArrayDeque eksempel
Filnavn: 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); } } }
Produktion:
Ravi Vijay Ajay
Java ArrayDeque Eksempel: offerFirst() og pollLast()
Filnavn: 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); } } }
Produktion:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Java ArrayDeque Eksempel: Bog
Filnavn: 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); } } }
Produktion:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6