W tym samouczku poznamy interfejs Java Queue i jego metody.
Queue
Interfejs zbiorach ramach Java zapewnia funkcjonalność struktury danych kolejki. Rozszerza Collection
interfejs.
Klasy implementujące kolejkę
Ponieważ Queue
jest to interfejs, nie możemy zapewnić jego bezpośredniej implementacji.
Aby skorzystać z funkcjonalności programu Queue
, musimy skorzystać z klas, które go implementują:
- ArrayDeque
- Połączona lista
- Kolejka priorytetowa
Interfejsy rozszerzające kolejkę
Queue
Interfejs jest również przedłużony o różnych podinterfejsów:
Deque
BlockingQueue
BlockingDeque
Działanie struktury danych kolejki
W kolejkach elementy są przechowywane i dostępne w trybie First In, First Out . Oznacza to, że elementy są dodawane od tyłu i usuwane z przodu .
Jak korzystać z kolejki?
W Javie musimy zaimportować java.util.Queue
pakiet, aby użyć 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();
Tutaj stworzyliśmy obiektów animal1, animal2 i animal3 klas LinkedList
, ArrayDeque
i PriorityQueue
odpowiednio. Obiekty te mogą korzystać z funkcjonalności Queue
interfejsu.
Metody kolejki
Queue
Interfejs obejmuje wszystkie sposoby przez Collection
interfejs. To dlatego, że Collection
jest super interfejsem Queue
.
Niektóre z powszechnie używanych metod Queue
interfejsu to:
- add () - wstawia określony element do kolejki. Jeśli zadanie się powiedzie,
add()
zwracatrue
, jeśli nie, zgłasza wyjątek. - offer () - wstawia określony element do kolejki. Jeśli zadanie się powiedzie,
offer()
zwracatrue
, jeśli nie, zwracafalse
. - element () - zwraca nagłówek kolejki. Zgłasza wyjątek, jeśli kolejka jest pusta.
- peek () - zwraca nagłówek kolejki. Zwraca,
null
jeśli kolejka jest pusta. - remove () - zwraca i usuwa nagłówek kolejki. Zgłasza wyjątek, jeśli kolejka jest pusta.
- poll () - zwraca i usuwa nagłówek kolejki. Zwraca,
null
jeśli kolejka jest pusta.
Implementacja interfejsu kolejki
1. Implementacja klasy 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); ) )
Wynik
Kolejka: (1, 2, 3) Dostęp do elementu: 1 Usunięty element: 1 Zaktualizowana kolejka: (2, 3)
Aby dowiedzieć się więcej, odwiedź Java LinkedList.
2. Implementacja klasy 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); ) )
Wynik
Kolejka: (1, 5, 2) Dostęp do elementu: 1 Usunięty element: 1 Zaktualizowana kolejka: (2, 5)
Aby dowiedzieć się więcej, odwiedź Java PriorityQueue.
W kolejnych samouczkach szczegółowo poznamy różne podinterfejsy Queue
interfejsu i jego implementację.