V tej vadnici bomo spoznali vmesnik Java Queue in njegove metode.
Queue
Vmesnik okviru Java zbirk zagotavlja funkcionalnost strukture podatkov čakalne vrste. Razširi Collection
vmesnik.
Razredi, ki izvajajo čakalno vrsto
Ker Queue
je vmesnik, ga ne moremo zagotoviti neposredno.
Da bi lahko uporabili funkcionalnosti Queue
, moramo uporabiti razrede, ki to izvajajo:
- ArrayDeque
- LinkedList
- PriorityQueue
Vmesniki, ki razširjajo čakalno vrsto
Queue
Vmesnik je razširjena tudi z različnimi subinterfaces:
Deque
BlockingQueue
BlockingDeque
Delovanje strukture podatkov o čakalni vrsti
V čakalnih vrstah se elementi shranjujejo in dostopajo na način First In, First Out . To pomeni, da so elementi dodani od zadaj in odstranjeni od spredaj .
Kako uporabljati čakalno vrsto?
V Javi moramo uvoziti java.util.Queue
paket, da ga lahko uporabljamo Queue
.
// LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue();
Tukaj smo ustvarili predmete animal1, animal2 in animal3 razredov LinkedList
, ArrayDeque
in PriorityQueue
v tem zaporedju. Ti predmeti lahko uporabljajo funkcionalnosti Queue
vmesnika.
Metode čakalne vrste
Queue
Vmesnik vključuje vse metode v Collection
vmesniku. To je zato, ker Collection
je super vmesnik Queue
.
Nekatere najpogosteje uporabljene metode Queue
vmesnika so:
- add () - Vstavi navedeni element v čakalno vrsto. Če je naloga uspešna, se
add()
vrnetrue
, če ne, vrže izjemo. - offer () - Vstavi navedeni element v čakalno vrsto. Če je naloga uspešna, se
offer()
vrnetrue
, če ne, se vrnefalse
. - element () - Vrne glavo čakalne vrste. Vrže izjemo, če je vrsta prazna.
- peek () - vrne glavo čakalne vrste. Vrne,
null
če je vrsta prazna. - remove () - Vrne in odstrani glavo čakalne vrste. Vrže izjemo, če je vrsta prazna.
- poll () - vrne in odstrani glavo čakalne vrste. Vrne,
null
če je vrsta prazna.
Izvajanje vmesnika čakalne vrste
1. Izvajanje razreda LinkedList
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // offer elements to the Queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Izhod
Čakalna vrsta: (1, 2, 3) Dostopni element: 1 Odstranjeni element: 1 Posodobljena čakalna vrsta: (2, 3)
Če želite izvedeti več, obiščite Java LinkedList.
2. Izvajanje razreda PriorityQueue
import java.util.Queue; import java.util.PriorityQueue; class Main ( public static void main(String() args) ( // Creating Queue using the PriorityQueue class Queue numbers = new PriorityQueue(); // offer elements to the Queue numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Izhod
Čakalna vrsta: (1, 5, 2) Dostopni element: 1 Odstranjeni element: 1 Posodobljena čakalna vrsta: (2, 5)
Če želite izvedeti več, obiščite Java PriorityQueue.
V naslednjih vajah bomo podrobno spoznali različne podvmesnike Queue
vmesnika in njegovo izvedbo.