Deque-niminen käyttöliittymä on java.util-paketissa. Se on liitäntäjonon alatyyppi. Deque tukee elementtien lisäämistä ja poistamista tietorakenteen molemmista päistä. Tästä syystä deque-tiedostoa voidaan käyttää pinona tai jonona. Tiedämme, että pino tukee LIFO (Last In First Out) -toimintoa, ja operaatiota First In First Out tukee jono. Koska deque tukee molempia, sille voidaan suorittaa jompikumpi mainituista toiminnoista. Deque on lyhenne sanoista 'kaksoispäätyinen jono'.
Deque Interface -ilmoitus
public interface Deque extends Queue
Java Deque -liittymän menetelmät
Menetelmä | Kuvaus |
---|---|
boolen lisäys(objekti) | Sitä käytetään lisäämään määritetty elementti tähän deque-tiedostoon ja palauttamaan true onnistuessaan. |
boolen tarjous(objekti) | Sitä käytetään lisäämään määritetty elementti tähän deque-tilaan. |
Objektin poistaminen() | Sitä käytetään tämän dequen pään hakemiseen ja poistamiseen. |
Objektikysely() | Sitä käytetään noutamaan ja poistamaan tämän dequen pää tai palauttamaan nollan, jos tämä deque on tyhjä. |
Objektielementti() | Sitä käytetään tämän dequen pään hakemiseen, mutta se ei poista sitä. |
Objektin kurkistus() | Sitä käytetään noutamaan, mutta ei poista, tämän dequen pään, tai palauttaa nollan, jos tämä deque on tyhjä. |
Objekti peekFirst() | Metodi palauttaa dequen head-elementin. Menetelmä ei poista dequesta mitään elementtiä. Nolla palautetaan tällä menetelmällä, kun deque on tyhjä. |
Objekti peekLast() | Metodi palauttaa dequen viimeisen elementin. Menetelmä ei poista dequesta mitään elementtiä. Nolla palautetaan tällä menetelmällä, kun deque on tyhjä. |
Boolen tarjousEnsimmäinen(e) | Lisää elementin e jonon etupuolelle. Jos lisäys onnistuu, palautetaan tosi; muuten väärä. |
ObjektitarjousViimeinen(e) | Lisää elementin e jonon loppuun. Jos lisäys onnistuu, palautetaan tosi; muuten väärä. |
ArrayDeque-luokka
Tiedämme, että Javassa ei ole mahdollista luoda käyttöliittymäobjektia. Siksi instanssia varten tarvitsemme luokan, joka toteuttaa Deque-rajapinnan, ja tämä luokka on ArrayDeque. Se kasvaa ja kutistuu käytön mukaan. Se perii myös AbstractCollection-luokan.
Tärkeitä kohtia ArrayDeque-luokasta ovat:
- Toisin kuin Queue, voimme lisätä tai poistaa elementtejä molemmilta puolilta.
- Nollaelementit eivät ole sallittuja ArrayDequessa.
- ArrayDeque ei ole säikeen turvallinen ulkoisen synkronoinnin puuttuessa.
- ArrayDequella ei ole kapasiteettirajoituksia.
- ArrayDeque on nopeampi kuin LinkedList ja Stack.
ArrayDeque-hierarkia
ArrayDeque-luokan hierarkia on esitetty sivun oikealla puolella olevassa kuvassa.
perinnöllinen java
ArrayDeque-luokkailmoitus
Katsotaanpa luokan java.util.ArrayDeque ilmoitus.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Java ArrayDeque -esimerkki
Tiedoston nimi: 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); } } }
Lähtö:
Ravi Vijay Ajay
Java ArrayDeque Esimerkki: offerFirst() ja pollLast()
Tiedoston nimi: 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); } } }
Lähtö:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Java ArrayDeque Esimerkki: Kirja
Tiedoston nimi: 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); } } }
Lähtö:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6