V tej vadnici bomo spoznali vmesnik Deque, kako ga uporabljati in njegove metode.
Deque
Vmesnik okviru Java zbirk zagotavlja funkcionalnost dvojno končalo čakalno vrsto. Razširi Queue
vmesnik.
Delo Deque
V običajni čakalni vrsti se elementi dodajo od zadaj in odstranijo od spredaj. V deque lahko vstavimo in odstranimo elemente tako spredaj kot zadaj .
Razredi, ki izvajajo Deque
Za uporabo funkcionalnosti Deque
vmesnika moramo uporabiti razrede, ki ga izvajajo:
- ArrayDeque
- LinkedList
Kako uporabljati Deque?
V Javi moramo java.util.Deque
paket uvoziti za uporabo Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Tu smo ustvarili predmete animal1 in animal2 razredov ArrayDeque oziroma LinkedList. Ti predmeti lahko uporabljajo funkcionalnosti Deque
vmesnika.
Metode Deque
Ker Deque
razširja Queue
vmesnik, podeduje vse metode vmesnika Queue.
Poleg načinov, ki so na voljo v Queue
vmesniku, Deque
vmesnik vključuje tudi naslednje metode:
- addFirst () - doda navedeni element na začetku deque. Vrne izjemo, če je deque poln.
- addLast () - doda navedeni element na koncu deque. Vrne izjemo, če je deque poln.
- offerFirst () - doda navedeni element na začetku deque. Vrne,
false
če je deque poln. - offerLast () - doda navedeni element na koncu deque. Vrne,
false
če je deque poln. - getFirst () - Vrne prvi element deque. Vrne izjemo, če je deque prazen.
- getLast () - Vrne zadnji element deque. Vrne izjemo, če je deque prazen.
- peekFirst () - Vrne prvi element deque. Vrne,
null
če je deque prazen. - peekLast () - Vrne zadnji element deque. Vrne,
null
če je deque prazen. - removeFirst () - Vrne in odstrani prvi element deque. Vrne izjemo, če je deque prazen.
- removeLast () - Vrne in odstrani zadnji element deque. Vrne izjemo, če je deque prazen.
- pollFirst () - vrne in odstrani prvi element deque. Vrne,
null
če je deque prazen. - pollLast () - vrne in odstrani zadnji element deque. Vrne,
null
če je deque prazen.
Deque kot struktura podatkovnega sklada
Stack
Razred Java Collections
okvira zagotavlja izvajanje dimnika.
Vendar je priporočljivo, da se uporablja Deque
kot sklad namesto razreda Stack. To je zato, ker so metode Stack
sinhronizirane.
Tu so metode, ki jih Deque
vmesnik ponuja za izvedbo sklada:
push()
- doda element na začetku dequepop()
- odstrani element z začetka dequepeek()
- vrne element z začetka deque
Izvajanje funkcije Deque v razredu ArrayDeque
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); ) )
Izhod
Deque: (3, 1, 2) Prvi element: 3 Zadnji element: 2 Odstranjen prvi element: 3 Odstranjen zadnji element: 2 Posodobljen Deque: (1)
Če želite izvedeti več, obiščite Java ArrayDeque.