Tässä opetusohjelmassa opit Deque-käyttöliittymästä, sen käytöstä ja sen menetelmistä.
Deque
Rajapinta Java kokoelmien kehys tarjoaa toiminnallisuuden kaksipäinen jono. Se laajentaa Queue
käyttöliittymää.
Dequen työskentely
Tavallisessa jonossa elementit lisätään takaa ja poistetaan edestä. Deque- elementissä voimme kuitenkin lisätä ja poistaa elementtejä sekä edessä että takana .
Luokat, jotka toteuttavat Dequen
Deque
Käyttöliittymän toimintojen käyttämiseksi meidän on käytettävä luokkia, jotka toteuttavat sen:
- ArrayDeque
- LinkedList
Kuinka Dequea käytetään?
Java-ohjelmassa java.util.Deque
paketti on tuotava käytettäväksi Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Tässä olemme luoneet objektit animal1 ja animal2 luokkiin ArrayDeque ja LinkedList, vastaavasti. Nämä objektit voivat käyttää Deque
käyttöliittymän toimintoja .
Menetelmät Deque
Koska käyttöliittymä Deque
laajennetaan Queue
, se perii kaikki jono-käyttöliittymän menetelmät.
Queue
Käyttöliittymässä olevien menetelmien lisäksi Deque
käyttöliittymä sisältää myös seuraavat menetelmät:
- addFirst () - Lisää määritetyn elementin dekin alkuun. Heittää poikkeuksen, jos deque on täynnä.
- addLast () - Lisää määritetyn elementin dekin loppuun. Heittää poikkeuksen, jos deque on täynnä.
- offerFirst () - Lisää määritetyn elementin dekin alkuun. Palauttaa,
false
jos deque on täynnä. - offerLast () - Lisää määritetyn elementin dequen loppuun. Palauttaa,
false
jos deque on täynnä. - getFirst () - Palauttaa dequen ensimmäisen elementin. Heittää poikkeuksen, jos deque on tyhjä.
- getLast () - Palauttaa viimeisen elementin. Heittää poikkeuksen, jos deque on tyhjä.
- peekFirst () - Palauttaa dequen ensimmäisen elementin. Palauttaa,
null
jos deque on tyhjä. - peekLast () - Palauttaa viimeisen elementin. Palauttaa,
null
jos deque on tyhjä. - removeFirst () - Palauttaa ja poistaa dequen ensimmäisen elementin. Heittää poikkeuksen, jos deque on tyhjä.
- removeLast () - Palauttaa ja poistaa dekin viimeisen elementin. Heittää poikkeuksen, jos deque on tyhjä.
- pollFirst () - Palauttaa ja poistaa dequen ensimmäisen elementin. Palauttaa,
null
jos deque on tyhjä. - pollLast () - Palauttaa ja poistaa viimeisen elementin. Palauttaa,
null
jos deque on tyhjä.
Deque pinon tietorakenteena
Stack
Luokka Java Collections
puitteet muodostavat täytäntöönpanoon pinon.
On kuitenkin suositeltavaa käyttää Deque
pinona Stack-luokan sijaan. Se johtuu siitä, että menetelmät Stack
ovat synkronoituja.
Tässä ovat menetelmät, joita Deque
käyttöliittymä tarjoaa pinon toteuttamiseksi:
push()
- lisää elementin dequen alkuunpop()
- poistaa elementin dequen alustapeek()
- palauttaa elementin dequen alusta
Dequen toteutus ArrayDeque-luokassa
import java.util.Deque; import java.util.ArrayDeque; class Main ( public static void main(String() args) ( // Creating Deque using the ArrayDeque class Deque numbers = new ArrayDeque(); // add elements to the Deque numbers.offer(1); numbers.offerLast(2); numbers.offerFirst(3); System.out.println("Deque: " + numbers); // Access elements of the Deque int firstElement = numbers.peekFirst(); System.out.println("First Element: " + firstElement); int lastElement = numbers.peekLast(); System.out.println("Last Element: " + lastElement); // Remove elements from the Deque int removedNumber1 = numbers.pollFirst(); System.out.println("Removed First Element: " + removedNumber1); int removedNumber2 = numbers.pollLast(); System.out.println("Removed Last Element: " + removedNumber2); System.out.println("Updated Deque: " + numbers); ) )
Tuotos
Deque: (3, 1, 2) Ensimmäinen elementti: 3 Viimeinen elementti: 2 Poistettu ensimmäinen elementti: 3 Poistettu viimeinen elementti: 2 Päivitetty Deque: (1)
Lisätietoja on Java ArrayDequessa.