De interface genaamd Deque is aanwezig in het java.util-pakket. Het is het subtype van de interfacewachtrij. De Deque ondersteunt zowel het toevoegen als het verwijderen van elementen aan beide uiteinden van de datastructuur. Daarom kan een deque worden gebruikt als stapel of als wachtrij. We weten dat de stapel de LIFO-bewerking (Last In First Out) ondersteunt, en dat de bewerking First In First Out wordt ondersteund door een wachtrij. Omdat een deque beide ondersteunt, kan een van de genoemde bewerkingen erop worden uitgevoerd. Deque is een acroniem voor 'dubbele wachtrij'.
Deque Interface-declaratie
public interface Deque extends Queue
Methoden van Java Deque-interface
Methode | Beschrijving |
---|---|
Booleaanse toevoeging(object) | Het wordt gebruikt om het opgegeven element in deze deque in te voegen en bij succes True terug te geven. |
Booleaanse aanbieding(object) | Het wordt gebruikt om het opgegeven element in deze deque in te voegen. |
Object verwijderen() | Het wordt gebruikt om het hoofd van deze deque op te halen en te verwijderen. |
Objectenquête() | Het wordt gebruikt om het hoofd van deze deque op te halen en te verwijderen, of retourneert null als deze deque leeg is. |
Objectelement() | Het wordt gebruikt om het hoofd van deze deque op te halen, maar verwijdert het niet. |
Object kijkje() | Het wordt gebruikt om het hoofd van deze deque op te halen, maar verwijdert deze niet, of retourneert null als deze deque leeg is. |
Object peekFirst() | De methode retourneert het head-element van de deque. De methode verwijdert geen enkel element uit de deque. Null wordt door deze methode geretourneerd als de deque leeg is. |
Object peekLast() | De methode retourneert het laatste element van de deque. De methode verwijdert geen enkel element uit de deque. Null wordt door deze methode geretourneerd als de deque leeg is. |
Booleaanse aanbiedingEerste(e) | Voegt het element e in aan de voorkant van de wachtrij. Als de invoeging succesvol is, wordt true geretourneerd; anders vals. |
Object offerLast(e) | Voegt het element e in aan de staart van de wachtrij. Als de invoeging succesvol is, wordt true geretourneerd; anders vals. |
ArrayDeque-klasse
We weten dat het niet mogelijk is om een object van een interface in Java te maken. Daarom hebben we voor instantiatie een klasse nodig die de Deque-interface implementeert, en die klasse is ArrayDeque. Het groeit en krimpt afhankelijk van het gebruik. Het neemt ook de klasse AbstractCollection over.
De belangrijke punten over de klasse ArrayDeque zijn:
- In tegenstelling tot Queue kunnen we aan beide kanten elementen toevoegen of verwijderen.
- Null-elementen zijn niet toegestaan in ArrayDeque.
- ArrayDeque is niet thread-safe vanwege het ontbreken van externe synchronisatie.
- ArrayDeque kent geen capaciteitsbeperkingen.
- ArrayDeque is sneller dan LinkedList en Stack.
ArrayDeque-hiërarchie
De hiërarchie van de ArrayDeque-klasse wordt gegeven in de afbeelding aan de rechterkant van de pagina.
anders als bash
ArrayDeque-klassedeclaratie
Laten we de declaratie voor de klasse java.util.ArrayDeque bekijken.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Java ArrayDeque-voorbeeld
Bestandsnaam: 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); } } }
Uitgang:
Ravi Vijay Ajay
Java ArrayDeque Voorbeeld: offerFirst() en pollLast()
Bestandsnaam: 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); } } }
Uitgang:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Java ArrayDeque Voorbeeld: Boek
Bestandsnaam: 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); } } }
Uitgang:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6