Interfața Queue este disponibilă în pachetul java.util și extinde interfața Collection. Este folosit pentru a păstra elementele care sunt procesate în modul First In First Out (FIFO). Este o listă ordonată de obiecte, unde inserarea elementelor are loc la sfârșitul listei, iar eliminarea elementelor are loc la începutul listei.
ce este un ou de Paște Android
Fiind o interfață, coada necesită, pentru declarație, o clasă concretă, iar cele mai comune clase sunt LinkedList și PriorityQueue în Java. Implementările făcute de aceste clase nu sunt sigure pentru fire. Dacă este necesar să existe o implementare sigură pentru fire, PriorityBlockingQueue este o opțiune disponibilă.
Declarație interfață coadă
public interface Queue extends Collection
Metode ale interfeței Java Queue
Metodă | Descriere |
---|---|
adăugare booleană (obiect) | Este folosit pentru a insera elementul specificat în această coadă și pentru a returna adevărat după succes. |
ofertă booleană (obiect) | Este folosit pentru a introduce elementul specificat în această coadă. |
Eliminare obiect() | Este folosit pentru a prelua și elimina capul acestei cozi. |
Sondaj obiect() | Este folosit pentru a prelua și elimina capul acestei cozi sau returnează null dacă această coadă este goală. |
Element obiect() | Este folosit pentru a prelua, dar nu pentru a elimina, capul acestei cozi. |
Privire obiect() | Este folosit pentru a extrage, dar nu elimină, capul acestei cozi sau returnează null dacă această coadă este goală. |
Caracteristicile unei cozi
Următoarele sunt câteva caracteristici importante ale unei cozi.
- După cum sa discutat mai devreme, conceptul FIFO este utilizat pentru inserarea și ștergerea elementelor dintr-o coadă.
- Java Queue oferă suport pentru toate metodele interfeței Collection, inclusiv ștergerea, inserarea etc.
- PriorityQueue, ArrayBlockingQueue și LinkedList sunt implementările care sunt utilizate cel mai frecvent.
- NullPointerException este ridicată, dacă se face orice operație nulă pe BlockingQueues.
- Acele Cozi care sunt prezente în util pachetele sunt cunoscute sub numele de Cozi nelimitate.
- Acele Cozi care sunt prezente în util pachetele sunt cunoscute ca Cozi delimitate.
- Toate cozile care exclud Deques facilitează îndepărtarea și inserarea la capul și coada cozii; respectiv. De fapt, deques susține inserarea și îndepărtarea elementului la ambele capete.
Clasa PriorityQueue
PriorityQueue este, de asemenea, o clasă care este definită în cadrul de colecție care ne oferă o modalitate de procesare a obiectelor pe baza priorității. Este deja descris că inserarea și ștergerea obiectelor urmează modelul FIFO în coada Java. Cu toate acestea, uneori, elementele cozii sunt necesare pentru a fi procesate în funcție de prioritate, acolo intră în acțiune o PriorityQueue.
Declarația clasei PriorityQueue
Să vedem declarația pentru clasa java.util.PriorityQueue.
public class PriorityQueue extends AbstractQueue implements Serializable
Exemplu Java PriorityQueue
Nume de fișier: TestCollection12.java
ce inseamna xd
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()); } } }Testează-l acum
Ieșire:
head:Amit head:Amit iterating the queue elements: Amit Jai Karan Vijay Rahul after removing two elements: Karan Rahul Vijay
Exemplu Java PriorityQueue: Carte
Să vedem un exemplu de PriorityQueue în care adăugăm cărți la coadă și tipărim toate cărțile. Elementele din PriorityQueue trebuie să fie de tip Comparabil. Clasele String și Wrapper sunt comparabile în mod implicit. Pentru a adăuga obiecte definite de utilizator în PriorityQueue, trebuie să implementați interfața comparabilă.
șir în numere întregi
Nume de fișier: 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>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 & 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){>