deque java deque implementation
Ta vadnica vsebuje podrobno razlago Deque ali 'Double-end Queue' v Javi. Spoznali boste vmesnik Deque, metode API, implementacijo itd.:
Deque ali »dvojna vrsta« v Javi je podatkovna struktura, v katero lahko vstavimo ali izbrišemo elemente z obeh koncev. Deque je vmesnik v Javi, ki pripada paketu java.util, in izvaja vmesnik java.queue.
Deque lahko uporabimo kot strukturo skladov (Last In, First Out) ali kot čakalno vrsto (first-in-first-out). Deque je hitrejši kot Stack in / ali LinkedList. Deque se izgovarja kot 'krov' kot pri 'krov kart'.
=> Tukaj si oglejte A-Z vadnic za učenje Java.
Kaj se boste naučili:
Približno Java
Tipična zbirka deque bo videti tako, kot je prikazano spodaj:
moja sql vprašanja in odgovori na pdf
Deque se večinoma uporablja za izvajanje podatkovnih struktur skladov, čakalnih vrst ali seznamov. Uporablja se lahko tudi za izvajanje prioritetnih čakalnih vrst. Funkcije razveljavitve ali zgodovine, ki so večinoma prisotne v spletnih brskalnikih, je mogoče implementirati z uporabo dequeov.
Java Deque vmesnik
Spodnji diagram prikazuje hierarhijo za dvojno vrsto ali deque. Kot je prikazano na spodnjem diagramu, se vmesnik Deque razširi na vmesnik Queue, ta pa vmesnik Collection.
Za uporabo vmesnika deque v našem programu moramo paket, ki vsebuje funkcijo deque, uvoziti s pomočjo izjave o uvozu, kot je prikazano spodaj.
import java.util.deque;
ali
import java.util.*;
Ker je deque vmesnik, za izvajanje funkcionalnosti vmesnika deque potrebujemo konkretne razrede.
Spodnja dva razreda izvajata vmesnik deque.
- ArrayDeque
- LinkedList
Zato lahko ustvarimo deque predmete z uporabo teh dveh razredov, kot je prikazano spodaj:
Deque numdeque = new ArrayDeque (); Deque strDeque = new LinkedList ();
Ko so zgornji deque predmeti uspešno izdelani, lahko uporabljajo funkcijo vmesnika deque.
Spodaj je nekaj pomembnih točk o deque:
- Vmesnik Deque podpira spremenljiva polja, ki se lahko po potrebi povečajo.
- Deque matrike ne dovoljujejo uporabe vrednosti Null.
- Deque ne podpira hkratnega dostopa prek več niti.
- Deque ni varen za nit, če ni zagotovljena zunanja sinhronizacija.
ArrayDeque v Javi
ArrayDeque pripada paketu java.util. Izvaja vmesnik deque. Razred ArrayDeque interno uporablja dinamično spremenljivo matriko, ki raste s povečanjem števila elementov.
Spodnji diagram prikazuje hierarhijo za razred ArrayDeque:
Kot je prikazano na diagramu, razred ArrayDeque podeduje razred AbstractCollection in izvaja vmesnik Deque.
najboljša aplikacija za preverjanje temperature procesorja
Objekt deque lahko ustvarimo z uporabo razreda ArrayDeque, kot je prikazano spodaj:
Deque deque_obj = new ArrayDeque ();
in primer
Naslednji program Java prikazuje preprost primer za boljše razumevanje deque. Tu smo uporabili razred ArrayDeque za instanciranje vmesnika deque. Predmetu deque smo dodali nekaj elementov in jih nato natisnili z zanko forEach.
import java.util.*; public class Main { public static void main(String() args) { //Creat a Deque and add elements Deque cities_deque = new ArrayDeque(); cities_deque.add('Delhi'); cities_deque.add('Mumbai'); cities_deque.add('Bangaluru'); System.out.println('Deque Contents:'); //Traverse the Deque for (String str : cities_deque) { System.out.print(str + ' '); } } }
Izhod:
Java API in METODE
Ker vmesnik deque izvaja vmesnik čakalne vrste, podpira vse metode vmesnika čakalne vrste. Poleg tega vmesnik deque ponuja naslednje metode, ki jih je mogoče uporabiti za izvajanje različnih operacij z objektom deque.
Povzemimo te metode v spodnji tabeli.
Metoda | Prototip metode | Opis |
---|---|---|
getFirst | E getFirst () | Pridobite prvi element okna, ne da bi ga odstranili. |
dodaj | logični dodatek (E e) | Dani element e doda v deque (na repu), ne da bi kršil omejitve zmogljivosti, in ob uspehu vrne true. Vrže IllegalStateException, če v deque ni prostora. |
addFirst | void addFirst (E e) | Dodan element e doda na sprednjo stran čakalne vrste, ne da bi kršil omejitve zmogljivosti. |
addLast | void addLast (E e) | Doda element e v zadnji del, ne da bi kršil omejitve zmogljivosti. |
vsebuje | logična vrednost vsebuje (predmet o) | Preveri, ali deque vsebuje dani element o. Vrne true, če da. |
padajočiIterator | Iterator padajočeIterator () | Ta metoda vrne iterator obratnega vrstnega reda za deque. |
element | E element () | Vrne prvi element ali glavo deque. Upoštevajte, da elementa ne izbriše. |
getLast | E getLast () | Pridobi zadnji element dequeja, ne da bi ga odstranil. |
iterator | Iterator iteratorja () | Vrne standardni iterator nad elementi deque. |
ponudbo | logična ponudba (E e) | Dani element e doda v deque (kot rep), ne da bi kršil omejitve zmogljivosti. Vrne true ob uspehu in false pri neuspehu. |
ponudbaPrvi | logična ponudbaFirst (E e) | Dani element e vstavite na sprednji del ohišja, ne da bi kršili omejitve zmogljivosti. |
offerLast | boolean offerLast (E e) | Vstavite dani element e na konec ohišja, ne da bi kršili omejitve zmogljivosti. |
pokukati | E pokukajte () | Vrne glavo deque (prvi element) ali nič, če je vrsta prazna. ** ne izbriše glave |
pokukajtePrvi | E peekFirst () | Vrne prvi element v deque, ne da bi ga izbrisal. Vrne nič, če je deque prazen. |
peekZadnje | E peekLast () | Pridobi zadnji element v dequeu, ne da bi ga odstranil. Vrne nič, če je deque prazen. |
anketa | E anketa () | Izbriše in vrne glavo deque. Vrne nič, če je deque prazen. |
anketaPrvi | E anketaPrvi () | Vrne in odstrani prvi element deque. Vrne nič, če je deque prazen. |
anketaLast | E-anketaZadnja () | Vrne in odstrani zadnji element deque. Vrne nič, če je deque prazen. |
pop | E pop () | Izvlecite element iz sklada, ki je predstavljen z uporabo deque. |
potisnite | void push (E e) | Dani element e potisnite na sklad, ki je predstavljen z uporabo deque, ne da bi kršil omejitve zmogljivosti. Vrne true ob uspehu ali IllegalStateException, če na deque ni na voljo prostora. |
Odstrani | E odstrani () | Odstranite in vrnite glavo škatle. |
Odstrani | logično odstranjevanje (objekt o) | Odstranite prvi pojav danega elementa o iz deque. |
odstrani najprej | E removeFirst () | Odstranite in vrnite prvi element deque. |
removeFirstOccurrence | boolean removeFirstOccurrence (Predmet o) | Odstrani prvi pojav danega elementa o iz deque. |
removeLast | E removeLast () | Pridobi in izbriše zadnji element v deque. |
removeLastOccurrence | boolean removeLastOccurrence (objekt o) | Izbriše zadnji pojav določenega elementa o iz deque. |
velikost | velikost int () | Vrne velikost ali število elementov v deque. |
In implementacija v Javi
Zdaj izvedimo program Java, da predstavimo nekatere glavne zgoraj opisane metode deque.
V tem programu uporabljamo deque tipa String in nato temu elementu dodamo elemente z različnimi metodami, kot so add, addFirst, addLast, push, offer, offerFirst itd. Nato prikažemo deque. Nato določimo standardni in obratni iterator za deque in prehod skozi deque za tiskanje elementov.
Uporabljamo tudi druge metode, kot so vsebina, pojavljanje, potiskanje, pokukanje, anketiranje, odstranjevanje itd.
import java.util.*; public class Main { public static void main(String() args) { //Declare Deque object Deque deque = new LinkedList(); // add elements to the queue using various methods deque.add('One'); //add () deque.addFirst('Two'); //addFirst () deque.addLast('Three'); //addLast () deque.push('Four'); //push () deque.offer('Five'); //offer () deque.offerFirst('Six'); //offerFirst () deque.offerLast('Seven'); //offerLast () System.out.println('Initial Deque:'); System.out.print(deque + ' '); // Iterate using standard iterator System.out.println('
Deque contents using Standard Iterator:'); Iterator iterator = deque.iterator(); while (iterator.hasNext()) System.out.print(' ' + iterator.next()); // Iterate using Reverse order iterator Iterator reverse = deque.descendingIterator(); System.out.println('
Deque contents using Reverse Iterator:'); while (reverse.hasNext()) System.out.print(' ' + reverse.next()); // Peek () method System.out.println('
Deque Peek:' + deque.peek()); System.out.println('
Deque,After peek:' + deque); // Pop () method System.out.println('
Deque Pop:' + deque.pop()); System.out.println('
Deque,After pop:' + deque); // contains () method System.out.println('
Deque Contains Three: ' + deque.contains('Three')); deque.removeFirst(); //removeFirst () deque.removeLast(); //removeLast () System.out.println('
Deque, after removing ' + 'first and last elements: ' + deque); } }
Izhod:
Pogosto zastavljena vprašanja
V # 1) Ali je Java varna z nitmi Deque?
Odgovor: ArrayDeque ni varen za nit. Toda vmesnik BlockingDeque v razredu java.util.concurrent predstavlja deque. Ta deque je varna pred nitmi.
Q # 2) Zakaj je Deque hitrejši od sklada?
Odgovor: Vmesnik ArrayDeque, ki implementira vmesnik deque, je pomnilniško učinkovit, saj mu ni treba slediti prejšnjim ali naslednjim vozliščem. Prav tako je izvedba, ki jo je mogoče spremeniti. Tako je deque hitrejši od sklada.
Q # 3) Je Deque kup?
Odgovor: Deque je dvojna vrsta. Omogoča vedenje LIFO in ga je zato mogoče implementirati kot sklad, čeprav ni sklad.
Q # 4) Kje se uporablja Deque?
Odgovor: Deque se večinoma uporablja za izvajanje funkcij, kot so razveljavitev in zgodovina.
V # 5) Je Deque krožen?
Odgovor: Da, Deque je krožen.
Zaključek
S tem smo zaključili našo vadnico o vmesniku Deque v Javi. Deque vmesnik je implementiran z deque podatkovno strukturo, ki je zbirka, ki lahko vstavlja in briše elemente na obeh koncih.
Oba razreda, tj. ArrayDeque in LinkedList, izvajata vmesnik deque. Te razrede lahko uporabimo za izvajanje funkcionalnosti vmesnika deque.
=> Obiščite tukaj za ekskluzivno serijo vadnic Java.
Priporočeno branje
- Dvostranska čakalna vrsta (Deque) v jeziku C ++ z primeri
- Java Queue - metode čakalne vrste, izvedba vrste z primeri
- Vadnica za prednostno vrsto Java - Implementacija in primeri
- Struktura podatkov prioritetne čakalne vrste v C ++ z ilustracijo
- Struktura podatkov čakalne vrste v jeziku C ++ z ilustracijo
- Struktura podatkov krožne čakalne vrste C ++: implementacija in aplikacije
- JAVA Vadnica za začetnike: 100+ praktičnih Javnih video vadnic
- Prednostna vrsta v STL