A Queue felület elérhető a java.util csomagban, és kiterjeszti a Gyűjtemény felületet. A FIFO (First In First Out) módon feldolgozott elemek megtartására szolgál. Ez az objektumok rendezett listája, ahol az elemek beillesztése a lista végén, az elemek eltávolítása pedig a lista elején történik.
Interfész lévén a várólista a deklarációhoz egy konkrét osztályt igényel, és a leggyakoribb osztályok a LinkedList és a PriorityQueue Java-ban. Az ezen osztályok által végrehajtott megvalósítások nem szálbiztosak. Ha szükséges a szál biztonságos megvalósítása, a PriorityBlockingQueue egy elérhető opció.
python sor rendezve
Sor interfész nyilatkozat
public interface Queue extends Collection
A Java Queue Interface módszerei
Módszer | Leírás |
---|---|
logikai add(objektum) | Ez arra szolgál, hogy a megadott elemet beillessze ebbe a sorba, és siker esetén true értéket adjon vissza. |
logikai ajánlat (objektum) | A megadott elem beszúrására szolgál ebbe a sorba. |
Objektum eltávolítása() | A sor fejének lekérésére és eltávolítására szolgál. |
Objektumlekérdezés() | A sor fejlécének lekérésére és eltávolítására szolgál, vagy null értékkel tér vissza, ha ez a sor üres. |
Objektum elem() | A sor fejének lekérésére szolgál, de nem távolítja el. |
Objektum betekintés () | A sor fejének lekérésére szolgál, de nem távolítja el, vagy nullát ad vissza, ha ez a sor üres. |
A sor jellemzői
Az alábbiakban a sor néhány fontos jellemzője látható.
- Amint azt korábban tárgyaltuk, a FIFO koncepciót elemek beszúrására és törlésére használják a sorból.
- A Java Queue támogatja a Gyűjtemény felület összes módszerét, beleértve a törlést, beillesztést stb.
- A PriorityQueue, az ArrayBlockingQueue és a LinkedList a leggyakrabban használt megvalósítások.
- A NullPointerException felvehető, ha null műveletet hajtanak végre a BlockingQueues-on.
- Azok a sorok, amelyek jelen vannak a util A csomagokat Unbounded Queues néven ismerik.
- Azok a sorok, amelyek jelen vannak a hasznos csomagokat korlátos várólistáknak nevezzük.
- Minden sor, amely tiltja a Deques-eket, megkönnyíti az eltávolítást és a behelyezést a sor elején és végén; illetőleg. Valójában a deques támogatja az elemek behelyezését és eltávolítását mindkét végén.
PriorityQueue osztály
A PriorityQueue a gyűjtési keretrendszerben meghatározott osztály is, amely lehetőséget ad az objektumok prioritás alapján történő feldolgozására. Már leírtuk, hogy az objektumok beszúrása és törlése a FIFO mintát követi a Java sorban. Néha azonban a sor elemeit prioritás szerint kell feldolgozni, ekkor lép működésbe a PriorityQueue.
PriorityQueue osztály nyilatkozat
Lássuk a java.util.PriorityQueue osztály deklarációját.
public class PriorityQueue extends AbstractQueue implements Serializable
Java PriorityQueue példa
Fájl név: TestCollection12.java
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()); } } }Tesztelje most
Kimenet:
head:Amit head:Amit iterating the queue elements: Amit Jai Karan Vijay Rahul after removing two elements: Karan Rahul Vijay
Java PriorityQueue példa: Book
Lássunk egy PriorityQueue példát, ahol könyveket adunk a sorhoz, és kinyomtatjuk az összes könyvet. A PriorityQueue elemeinek Comparable típusúnak kell lenniük. A String és a Wrapper osztályok alapértelmezés szerint összehasonlíthatók. Ahhoz, hogy felhasználó által definiált objektumokat adjon hozzá a PriorityQueue-hoz, meg kell valósítania a Comparable felületet.
xvideoservicethief ubuntu 14.04 letöltés
Fájl név: 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){>