logo

Java Deque vmesnik

Vmesnik, imenovan Deque, je prisoten v paketu java.util. Je podvrsta čakalne vrste vmesnika. Deque podpira dodajanje in odstranjevanje elementov z obeh koncev podatkovne strukture. Zato se deque lahko uporablja kot sklad ali čakalna vrsta. Vemo, da sklad podpira operacijo Last In First Out (LIFO), operacijo First In First Out pa podpira čakalna vrsta. Ker deque podpira oboje, je mogoče na njem izvesti katero koli od omenjenih operacij. Deque je kratica za 'dvojno končana čakalna vrsta'.

Deklaracija vmesnika Deque

 public interface Deque extends Queue 

Metode vmesnika Java Deque

Metoda Opis
logični dodatek (predmet) Uporablja se za vstavljanje določenega elementa v to deque in vrnitev true po uspehu.
logična ponudba (objekt) Uporablja se za vstavljanje določenega elementa v to deque.
Predmet odstrani() Uporablja se za pridobivanje in odstranjevanje glave te deke.
Anketa predmeta() Uporablja se za pridobitev in odstranitev glave te deque ali vrne nič, če je ta deque prazna.
Element predmeta () Uporablja se za pridobitev, vendar ne za odstranitev glave te deke.
Predmet peek() Uporablja se za pridobivanje, vendar ne odstrani glave te deque ali vrne nič, če je ta deque prazna.
Objekt peekFirst() Metoda vrne glavni element deque. Metoda ne odstrani nobenega elementa iz deque. Ta metoda vrne vrednost Null, ko je deque prazna.
Objekt peekLast() Metoda vrne zadnji element deque. Metoda ne odstrani nobenega elementa iz deque. Ta metoda vrne vrednost Null, ko je deque prazna.
Boolean offerFirst(e) Vstavi element e na začetek čakalne vrste. Če je vstavljanje uspešno, se vrne true; drugače, lažno.
Ponudba objekta Zadnja(e) Vstavi element e na rep čakalne vrste. Če je vstavljanje uspešno, se vrne true; drugače, lažno.
hierarhija java arraydeque

Razred ArrayDeque

Vemo, da v Javi ni mogoče ustvariti objekta vmesnika. Zato za instanciranje potrebujemo razred, ki implementira vmesnik Deque, in ta razred je ArrayDeque. Glede na uporabo raste in se manjša. Prav tako podeduje razred AbstractCollection.

Pomembne točke o razredu ArrayDeque so:

  • Za razliko od Queue lahko dodajamo ali odstranjujemo elemente z obeh strani.
  • Ničelni elementi niso dovoljeni v ArrayDeque.
  • ArrayDeque ni varen za niti, če ni zunanje sinhronizacije.
  • ArrayDeque nima omejitev glede zmogljivosti.
  • ArrayDeque je hitrejši od LinkedList in Stack.

Hierarhija ArrayDeque

Hierarhija razreda ArrayDeque je podana na sliki, prikazani na desni strani strani.

np pika

Deklaracija razreda ArrayDeque

Oglejmo si deklaracijo za razred java.util.ArrayDeque.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Primer Java ArrayDeque

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

Izhod:

Ravi Vijay Ajay 

Primer Java ArrayDeque: offerFirst() in pollLast()

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

Izhod:

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

Primer Java ArrayDeque: Knjiga

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

Izhod:

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