logo

Rozhranie Java Queue

Rozhranie Queue je dostupné v balíku java.util a rozširuje rozhranie Collection. Používa sa na uchovanie prvkov, ktoré sú spracované spôsobom FIFO (First In First Out). Je to usporiadaný zoznam objektov, kde vkladanie prvkov prebieha na konci zoznamu a odstraňovanie prvkov na začiatku zoznamu.

v porovnaní s reťazcami v jazyku Java

Keďže ide o rozhranie, front vyžaduje na deklaráciu konkrétnu triedu a najbežnejšie triedy sú LinkedList a PriorityQueue v jazyku Java. Implementácie vykonané týmito triedami nie sú bezpečné pre vlákna. Ak sa vyžaduje implementácia bezpečnej pre vlákna, dostupná možnosť je PriorityBlockingQueue.

Vyhlásenie o rozhraní frontu

 public interface Queue extends Collection 

Metódy rozhrania Java Queue Interface

Metóda Popis
boolovské pridanie (objekt) Používa sa na vloženie určeného prvku do tohto frontu a po úspechu vráti hodnotu true.
boolovská ponuka (objekt) Používa sa na vloženie určeného prvku do tohto frontu.
Object remove() Používa sa na získanie a odstránenie hlavy tohto frontu.
Object poll() Používa sa na získanie a odstránenie hlavy tohto frontu alebo vráti hodnotu null, ak je tento front prázdny.
Element objektu() Používa sa na získanie, ale neodstráni hlavu tohto radu.
Pohľad na objekt () Používa sa na získanie, ale neodstráni hlavičku tohto frontu, alebo vráti hodnotu null, ak je tento front prázdny.

Vlastnosti frontu

Nasleduje niekoľko dôležitých funkcií frontu.

  • Ako už bolo uvedené, koncept FIFO sa používa na vkladanie a odstraňovanie prvkov z frontu.
  • Java Queue poskytuje podporu pre všetky metódy rozhrania kolekcie vrátane vymazania, vloženia atď.
  • PriorityQueue, ArrayBlockingQueue a LinkedList sú implementácie, ktoré sa používajú najčastejšie.
  • Výnimka NullPointerException sa vyvolá, ak sa na BlockingQueues vykoná akákoľvek operácia null.
  • Tie fronty, ktoré sú prítomné v util balíky sú známe ako Unbounded Queues.
  • Tie fronty, ktoré sú prítomné v užitočné balíky sú známe ako ohraničené fronty.
  • Všetky fronty okrem Deques uľahčujú odstraňovanie a vkladanie na začiatok a koniec frontu; resp. V skutočnosti to znamená vkladanie a vyberanie podporného prvku na oboch koncoch.

Trieda PriorityQueue

PriorityQueue je tiež trieda, ktorá je definovaná v rámci kolekcie, ktorá nám poskytuje spôsob spracovania objektov na základe priority. Už bolo popísané, že vkladanie a odstraňovanie objektov sa riadi vzorom FIFO vo fronte Java. Niekedy je však potrebné, aby boli prvky frontu spracované podľa priority, a to je miesto, kde vstupuje do činnosti PriorityQueue.

Deklarácia triedy PriorityQueue

Pozrime sa na deklaráciu pre triedu java.util.PriorityQueue.

 public class PriorityQueue extends AbstractQueue implements Serializable 

Príklad Java PriorityQueue

Názov súboru: TestCollection12.java

aký veľký je tento monitor
 import java.util.*; class TestCollection12{ public static void main(String args[]){ PriorityQueue queue=new PriorityQueue(); queue.add('Amit'); queue.add('Vijay'); queue.add('Karan'); queue.add('Jai'); queue.add('Rahul'); System.out.println('head:'+queue.element()); System.out.println('head:'+queue.peek()); System.out.println('iterating the queue elements:'); Iterator itr=queue.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } queue.remove(); queue.poll(); System.out.println('after removing two elements:'); Iterator itr2=queue.iterator(); while(itr2.hasNext()){ System.out.println(itr2.next()); } } } 
Vyskúšajte to

Výkon:

head:Amit head:Amit iterating the queue elements: Amit Jai Karan Vijay Rahul after removing two elements: Karan Rahul Vijay 

Príklad Java PriorityQueue: Kniha

Pozrime sa na príklad PriorityQueue, kde pridávame knihy do poradia a tlačíme všetky knihy. Prvky v PriorityQueue musia byť typu Porovnateľné. Triedy String a Wrapper sú štandardne porovnateľné. Ak chcete pridať užívateľom definované objekty do PriorityQueue, musíte implementovať porovnateľné rozhranie.

java polia

Názov súboru: LinkedListExample.java

 import java.util.*; class Book implements Comparable{ int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } public int compareTo(Book b) { if(id&gt;b.id){ return 1; }else if(id <b.id){ return -1; }else{ 0; } public class linkedlistexample { static void main(string[] args) queue priorityqueue(); creating books book b1="new" book(121,'let us c','yashwant kanetkar','bpb',8); b2="new" book(233,'operating system','galvin','wiley',6); b3="new" book(101,'data communications & networking','forouzan','mc graw hill',4); adding to the queue.add(b1); queue.add(b2); queue.add(b3); system.out.println('traversing elements:'); traversing elements for(book b:queue){ system.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); queue.remove(); system.out.println('after removing one record:'); < pre> <p> <strong>Output:</strong> </p> <pre>Traversing the queue elements: 101 Data Communications &amp; Networking Forouzan Mc Graw Hill 4 233 Operating System Galvin Wiley 6 121 Let us C Yashwant Kanetkar BPB 8 After removing one book record: 121 Let us C Yashwant Kanetkar BPB 8 233 Operating System Galvin Wiley 6 </pre> <hr></b.id){>