logo

Rozhraní Java Deque

Rozhraní s názvem Deque je přítomno v balíčku java.util. Je to podtyp fronty rozhraní. Deque podporuje přidávání i odstraňování prvků z obou konců datové struktury. Proto lze deque použít jako zásobník nebo frontu. Víme, že zásobník podporuje operaci LIFO (Last In First Out) a operace First In First Out je podporována frontou. Protože deque podporuje obojí, lze na něm provádět kteroukoli z uvedených operací. Deque je zkratka pro „dvojitá fronta“.

Deque Interface deklarace

 public interface Deque extends Queue 

Metody Java Deque Interface

Metoda Popis
booleovské přidání (objekt) Používá se k vložení zadaného prvku do tohoto deque a při úspěchu vrátí hodnotu true.
booleovská nabídka (objekt) Slouží k vložení zadaného prvku do tohoto deque.
Object remove() Slouží k vytažení a odstranění hlavy tohoto deka.
Object poll() Používá se k načtení a odstranění hlavy tohoto deque, nebo vrátí hodnotu null, pokud je tento deque prázdný.
Object element() Používá se k aportování, ale neodstraňuje hlavu tohoto deque.
Pohled na objekt () Používá se k načtení, ale neodstraní hlavičku tohoto deque, nebo vrátí hodnotu null, pokud je tento deque prázdný.
Objekt peekFirst() Metoda vrací element head deque. Metoda neodstraní žádný prvek z deque. Tato metoda vrací hodnotu Null, když je deque prázdný.
Objekt peekLast() Metoda vrací poslední prvek deque. Metoda neodstraní žádný prvek z deque. Tato metoda vrací hodnotu Null, když je deque prázdný.
Booleovská nabídkaFirst(e) Vloží prvek e na začátek fronty. Pokud je vložení úspěšné, je vráceno true; jinak falešné.
Nabídka objektuPoslední(e) Vloží prvek e na konec fronty. Pokud je vložení úspěšné, je vráceno true; jinak falešné.
hierarchie java arraydeque

třída ArrayDeque

Víme, že v Javě není možné vytvořit objekt rozhraní. Pro vytvoření instance tedy potřebujeme třídu, která implementuje rozhraní Deque, a tou třídou je ArrayDeque. Při používání roste a zmenšuje se. Také zdědí třídu AbstractCollection.

Důležité body o třídě ArrayDeque jsou:

  • Na rozdíl od Queue můžeme přidávat nebo odebírat prvky z obou stran.
  • Nulové prvky nejsou v ArrayDeque povoleny.
  • ArrayDeque není bezpečné pro vlákna, protože neexistuje externí synchronizace.
  • ArrayDeque nemá žádná omezení kapacity.
  • ArrayDeque je rychlejší než LinkedList a Stack.

Hierarchie ArrayDeque

Hierarchie třídy ArrayDeque je uvedena na obrázku zobrazeném na pravé straně stránky.

obj v jazyce Java

Deklarace třídy ArrayDeque

Podívejme se na deklaraci třídy java.util.ArrayDeque.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Příklad Java ArrayDeque

Název souboru: 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); } } } 

Výstup:

Ravi Vijay Ajay 

Příklad Java ArrayDeque: offerFirst() a pollLast()

Název souboru: 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); } } } 

Výstup:

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

Java ArrayDeque Příklad: Kniha

Název souboru: 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); } } } 

Výstup:

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