U ovom uputstvu naučit ćemo o sučelju Java Queue i njegovim metodama.
Queue
Sučelje Java zbirki okvira pruža funkcionalnost strukture red podataka. Proširuje Collection
sučelje.
Klase koje implementiraju red čekanja
Budući da Queue
je sučelje, ne možemo ga osigurati izravnom provedbom.
Da bismo koristili funkcionalnosti Queue
, trebamo koristiti klase koje ga implementiraju:
- ArrayDeque
- LinkedList
- PriorityQueue
Sučelja koja proširuju Red čekanja
Queue
Sučelje je također proširena raznim subinterfaces:
Deque
BlockingQueue
BlockingDeque
Rad strukture podataka o redu čekanja
U redovima se elementi pohranjuju i pristupa im se na način Prvi ulaz, Prvi izlaz . Odnosno, elementi se dodaju straga i uklanjaju sprijeda .
Kako koristiti Red čekanja?
U Javi moramo uvesti java.util.Queue
paket da bismo ga mogli koristiti 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();
Ovdje smo stvorili objekata animal1, animal2 i animal3 klasa LinkedList
, ArrayDeque
i PriorityQueue
odnosno. Ti objekti mogu koristiti funkcionalnosti Queue
sučelja.
Metode čekanja
Queue
Sučelje uključuje sve metode iz Collection
sučelja. To je zato što Collection
je super sučelje Queue
.
Neke od najčešće korištenih metoda Queue
sučelja su:
- add () - Ubacuje navedeni element u red čekanja. Ako je zadatak uspješan,
add()
vraća setrue
, ako ne, izbacuje iznimku. - ponuda () - ubacuje navedeni element u red čekanja. Ako je zadatak uspješan,
offer()
vraća setrue
, ako ne, vraća sefalse
. - element () - Vraća glavu reda. Baca iznimku ako je red prazan.
- peek () - Vraća glavu reda. Vraća
null
ako je red prazan. - remove () - Vraća i uklanja glavu reda. Baca iznimku ako je red prazan.
- anketa () - Vraća i uklanja glavu reda. Vraća
null
ako je red prazan.
Implementacija sučelja reda čekanja
1. Implementacija klase 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); ) )
Izlaz
Red čekanja: (1, 2, 3) Pristupljeni element: 1 uklonjeni element: 1 ažurirani red: (2, 3)
Da biste saznali više, posjetite Java LinkedList.
2. Implementacija klase 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); ) )
Izlaz
Red čekanja: (1, 5, 2) Pristupljeni element: 1 uklonjeni element: 1 ažurirani red: (2, 5)
Da biste saznali više, posjetite Java PriorityQueue.
U sljedećim uputstvima Queue
detaljno ćemo naučiti o različitim podsučeljima sučelja i njegovoj implementaciji.