Rozhraní fronty Java

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í:

  • Deque
  • BlockingQueue
  • BlockingDeque

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í se true, pokud ne, vyvolá výjimku.
  • offer () - Vloží zadaný prvek do fronty. Pokud je úkol úspěšný, offer()vrátí se true, pokud ne, vrátí se false.
  • 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.

Zajímavé články...