logo

Java Deque felület

A Deque nevű interfész a java.util csomagban található. Ez az interfész várólista altípusa. A Deque támogatja az elemek hozzáadását és eltávolítását az adatstruktúra mindkét végéről. Ezért a deque használható veremként vagy sorként. Tudjuk, hogy a verem támogatja az Last In First Out (LIFO) műveletet, a First In First Out műveletet pedig egy várakozási sor támogatja. Mivel a deque mindkettőt támogatja, az említett műveletek bármelyike ​​elvégezhető rajta. A Deque a szó rövidítése 'kétvégű sor'.

Deque Interface nyilatkozat

 public interface Deque extends Queue 

A Java Deque Interface módszerei

Módszer Leírás
logikai add(objektum) A megadott elem beszúrására szolgál ebbe a deque-be, és siker esetén true-t ad vissza.
logikai ajánlat (objektum) A megadott elem beillesztésére szolgál ebbe a deque-be.
Objektum eltávolítása() Ennek a deque-nek a fejének lekérésére és eltávolítására szolgál.
Objektumlekérdezés() A deque fejlécének lekérésére és eltávolítására szolgál, vagy nullát ad vissza, ha ez a deque üres.
Objektum elem() Ennek a deque-nek a fejének lekérésére szolgál, de nem távolítja el.
Objektum bepillantás () A deque fejlécének lekérésére szolgál, de nem távolítja el, vagy nullát ad vissza, ha ez a deque üres.
Object peekFirst() A metódus a deque head elemét adja vissza. A módszer egyetlen elemet sem távolít el a deque-ből. Ezzel a módszerrel nullát ad vissza, ha a deque üres.
Objektum peekLast() A metódus a deque utolsó elemét adja vissza. A módszer egyetlen elemet sem távolít el a deque-ből. Ezzel a módszerrel nullát ad vissza, ha a deque üres.
Logikai ajánlatFirst(e) Az e elemet beszúrja a sor elejére. Ha a beillesztés sikeres, akkor a visszaküldés igaz; egyébként hamis.
Tárgyajánlat Utolsó(e) Az e elemet beszúrja a sor végére. Ha a beillesztés sikeres, akkor a visszaküldés igaz; egyébként hamis.
java arraydeque hierarchia

ArrayDeque osztály

Tudjuk, hogy Java nyelven nem lehet interfész objektumot létrehozni. Ezért a példányosításhoz olyan osztályra van szükségünk, amely megvalósítja a Deque interfészt, és ez az osztály az ArrayDeque. Használatnak megfelelően nő és zsugorodik. Az AbstractCollection osztályt is örökli.

Az ArrayDeque osztály legfontosabb pontjai a következők:

  • A Queue-tól eltérően mindkét oldalról tudunk elemeket hozzáadni vagy eltávolítani.
  • Null elemek nem megengedettek az ArrayDeque-ben.
  • Az ArrayDeque külső szinkronizálás hiányában nem szálbiztos.
  • Az ArrayDeque-nek nincsenek kapacitáskorlátozásai.
  • Az ArrayDeque gyorsabb, mint a LinkedList és a Stack.

ArrayDeque hierarchia

Az ArrayDeque osztály hierarchiája az oldal jobb oldalán látható ábrán látható.

java létrehozó lista

ArrayDeque osztálydeklaráció

Lássuk a java.util.ArrayDeque osztály deklarációját.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Java ArrayDeque példa

Fájl név: 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); } } } 

Kimenet:

Ravi Vijay Ajay 

Java ArrayDeque példa: offerFirst() és pollLast()

Fájl név: 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); } } } 

Kimenet:

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

Java ArrayDeque Példa: Könyv

Fájl név: 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); } } } 

Kimenet:

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