logo

Java sor interfész

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&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){>