logo

Java Deque-Schnittstelle

Die Schnittstelle namens Deque ist im Paket java.util vorhanden. Es ist der Untertyp der Schnittstellenwarteschlange. Die Deque unterstützt das Hinzufügen und Entfernen von Elementen an beiden Enden der Datenstruktur. Daher kann eine Deque als Stapel oder Warteschlange verwendet werden. Wir wissen, dass der Stapel die LIFO-Operation (Last In First Out) unterstützt und die Operation First In First Out von einer Warteschlange unterstützt wird. Da eine Deque beides unterstützt, kann jede der genannten Operationen darauf ausgeführt werden. Deque ist ein Akronym für 'Doppelendige Warteschlange'.

Deque Interface-Deklaration

 public interface Deque extends Queue 

Methoden der Java Deque-Schnittstelle

Methode Beschreibung
boolesches Add(Objekt) Es wird verwendet, um das angegebene Element in diese Deque einzufügen und bei Erfolg true zurückzugeben.
boolesches Angebot (Objekt) Es wird verwendet, um das angegebene Element in diese Deque einzufügen.
Objekt entfernen() Es dient zum Einholen und Entfernen des Kopfes dieser Deque.
Objektumfrage() Es wird verwendet, um den Kopf dieser Deque abzurufen und zu entfernen, oder gibt null zurück, wenn diese Deque leer ist.
Objektelement() Es wird verwendet, um den Kopf dieser Deque abzurufen, aber nicht zu entfernen.
Objekt-Peek() Es wird verwendet, um den Kopf dieser Deque abzurufen, aber nicht zu entfernen, oder gibt null zurück, wenn diese Deque leer ist.
Objekt peekFirst() Die Methode gibt das Kopfelement der Deque zurück. Die Methode entfernt kein Element aus der Deque. Null wird von dieser Methode zurückgegeben, wenn die Deque leer ist.
Objekt peekLast() Die Methode gibt das letzte Element der Deque zurück. Die Methode entfernt kein Element aus der Deque. Null wird von dieser Methode zurückgegeben, wenn die Deque leer ist.
Boolean offerFirst(e) Fügt das Element e am Anfang der Warteschlange ein. Bei erfolgreicher Einfügung wird true zurückgegeben; andernfalls falsch.
ObjektangebotLast(e) Fügt das Element e am Ende der Warteschlange ein. Bei erfolgreicher Einfügung wird true zurückgegeben; andernfalls falsch.
Java-Arraydeque-Hierarchie

ArrayDeque-Klasse

Wir wissen, dass es in Java nicht möglich ist, ein Objekt einer Schnittstelle zu erstellen. Daher benötigen wir für die Instanziierung eine Klasse, die die Deque-Schnittstelle implementiert, und diese Klasse ist ArrayDeque. Es wächst und schrumpft je nach Nutzung. Es erbt auch die AbstractCollection-Klasse.

Die wichtigen Punkte zur ArrayDeque-Klasse sind:

  • Im Gegensatz zur Warteschlange können wir Elemente auf beiden Seiten hinzufügen oder entfernen.
  • Nullelemente sind in der ArrayDeque nicht zulässig.
  • ArrayDeque ist ohne externe Synchronisierung nicht threadsicher.
  • Für ArrayDeque gibt es keine Kapazitätsbeschränkungen.
  • ArrayDeque ist schneller als LinkedList und Stack.

ArrayDeque-Hierarchie

Die Hierarchie der ArrayDeque-Klasse ist in der Abbildung auf der rechten Seite der Seite dargestellt.

Amplitudenmodulation

Deklaration der ArrayDeque-Klasse

Sehen wir uns die Deklaration für die Klasse java.util.ArrayDeque an.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Java ArrayDeque-Beispiel

Dateiname: 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); } } } 

Ausgabe:

Ravi Vijay Ajay 

Java ArrayDeque-Beispiel: offerFirst() und pollLast()

Dateiname: 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); } } } 

Ausgabe:

After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal 

Java ArrayDeque-Beispiel: Buch

Dateiname: 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); } } } 

Ausgabe:

101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6