V tomto kurzu se seznámíme s rozhraním Java Queue a jeho metodami.
QueueRozhraní sbírek rámce Java poskytuje funkce datové struktury fronta. Rozšiřuje Collectionrozhraní.
Třídy, které implementují frontu
Jelikož se Queuejedná o rozhraní, nemůžeme poskytnout jeho přímou implementaci.
Aby bylo možné používat funkce Queue, musíme použít třídy, které ji implementují:
- ArrayDeque
- Spojový seznam
- Prioritní fronta

Rozhraní, která rozšiřují frontu
QueueRozhraní je také rozšířena o různé podrozhraní:
DequeBlockingQueueBlockingDeque

Práce s datovou strukturou fronty
Ve frontách se prvky ukládají a přistupuje k nim způsobem First In, First Out . To znamená, že prvky jsou přidány zezadu a odstraněny zepředu .

Jak používat frontu?
V Javě musíme java.util.Queuepro použití importovat balíček 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();
Zde jsme vytvořili objekty animal1, animal2 a animal3 tříd LinkedList, ArrayDequea PriorityQueuev tomto pořadí. Tyto objekty mohou využívat funkce Queuerozhraní.
Metody fronty
QueueRozhraní zahrnuje všechny metody Collectionrozhraní. Je to proto, že Collectionje super rozhraní Queue.
Mezi běžně používané metody Queuerozhraní patří:
- add () - Vloží zadaný prvek do fronty. Pokud je úkol úspěšný,
add()vrátí setrue, pokud ne, vyvolá výjimku. - offer () - Vloží zadaný prvek do fronty. Pokud je úkol úspěšný,
offer()vrátí setrue, pokud ne, vrátí sefalse. - element () - Vrátí záhlaví fronty. Vyvolá výjimku, pokud je fronta prázdná.
- peek () - Vrátí hlavu fronty. Vrátí se,
nullpokud je fronta prázdná. - remove () - Vrací a odstraňuje hlavu fronty. Vyvolá výjimku, pokud je fronta prázdná.
- poll () - Vrátí a odebere hlavu fronty. Vrátí se,
nullpokud je fronta prázdná.
Implementace frontového rozhraní
1. Implementace třídy 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); ) )
Výstup
Fronta: (1, 2, 3) Přistupovaný prvek: 1 Odstraněný prvek: 1 Aktualizovaná fronta: (2, 3)
Další informace najdete na webu Java LinkedList.
2. Implementace třídy 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); ) )
Výstup
Fronta: (1, 5, 2) Přistupovaný prvek: 1 Odstraněný prvek: 1 Aktualizovaná fronta: (2, 5)
Chcete-li se dozvědět více, navštivte Java PriorityQueue.
V příštích cvičeních se dozvíme podrobně o různých podrozhraních Queuerozhraní a jeho implementaci.








