Gränssnittet som heter Deque finns i paketet java.util. Det är undertypen av gränssnittskön. Deque stöder tillägg och borttagning av element från båda ändarna av datastrukturen. Därför kan en deque användas som en stack eller en kö. Vi vet att stacken stöder operationen Last In First Out (LIFO) och operationen First In First Out stöds av en kö. Eftersom en deque stöder båda kan någon av de nämnda operationerna utföras på den. Deque är en akronym för 'dubbel kö'.
Deque Interface deklaration
public interface Deque extends Queue
Metoder för Java Deque Interface
Metod | Beskrivning |
---|---|
boolean add(objekt) | Den används för att infoga det specificerade elementet i denna deque och returnera sant vid framgång. |
booleskt erbjudande (objekt) | Den används för att infoga det specificerade elementet i denna deque. |
Objekt remove() | Den används för att hämta och ta bort huvudet på denna deque. |
Objektundersökning() | Den används för att hämta och ta bort huvudet på denna deque, eller returnerar null om denna deque är tom. |
Objektelement() | Den används för att hämta, men tar inte bort, huvudet på denna deque. |
Object peek() | Den används för att hämta, men tar inte bort, huvudet på denna deque, eller returnerar null om denna deque är tom. |
Objekt peekFirst() | Metoden returnerar huvudelementet i dequen. Metoden tar inte bort något element från dequen. Null returneras med denna metod när dequen är tom. |
Objekt peekLast() | Metoden returnerar det sista elementet i dequen. Metoden tar inte bort något element från dequen. Null returneras med denna metod när dequen är tom. |
Boolean offerFirst(e) | Infogar elementet e längst fram i kön. Om infogningen lyckas returneras true; annars falskt. |
ObjekterbjudandeLast(e) | Infogar elementet e i slutet av kön. Om infogningen lyckas returneras true; annars falskt. |
ArrayDeque klass
Vi vet att det inte är möjligt att skapa ett objekt av ett gränssnitt i Java. Därför, för instansiering, behöver vi en klass som implementerar Deque-gränssnittet, och den klassen är ArrayDeque. Den växer och krymper efter användning. Den ärver också klassen AbstractCollection.
De viktiga punkterna om ArrayDeque-klassen är:
- Till skillnad från Queue kan vi lägga till eller ta bort element från båda sidor.
- Null-element är inte tillåtna i ArrayDeque.
- ArrayDeque är inte trådsäkert i avsaknad av extern synkronisering.
- ArrayDeque har inga kapacitetsbegränsningar.
- ArrayDeque är snabbare än LinkedList och Stack.
ArrayDeque Hierarki
Hierarkin för ArrayDeque-klassen anges i figuren som visas till höger på sidan.
typer av maskininlärning
ArrayDeque klassdeklaration
Låt oss se deklarationen för klassen java.util.ArrayDeque.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Java ArrayDeque Exempel
Filnamn: 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 Exempel: offerFirst() och pollLast()
Filnamn: 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 Exempel: Bok
Filnamn: 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