logo

Java eilės sąsaja

Sąsajos eilė yra java.util pakete ir išplečia Kolekcijos sąsają. Jis naudojamas elementams, kurie apdorojami „First In First Out“ (FIFO) būdu, išlaikyti. Tai sutvarkytas objektų sąrašas, kuriame elementai įterpiami sąrašo pabaigoje, o elementai pašalinami sąrašo pradžioje.

Būdama sąsaja, eilei deklaracijai reikia konkrečios klasės, o dažniausiai naudojamos klasės yra LinkedList ir PriorityQueue Java. Šių klasių įgyvendinimas nėra saugus. Jei reikalaujama, kad gijos diegimas būtų saugus, galima pasirinkti „PriorityBlockingQueue“.

Eilės sąsajos deklaracija

 public interface Queue extends Collection 

Java eilės sąsajos metodai

Metodas apibūdinimas
loginis pridėjimas (objektas) Jis naudojamas nurodytam elementui įterpti į šią eilę ir sėkmingai grąžinti teisingą.
loginis pasiūlymas (objektas) Jis naudojamas nurodytam elementui įterpti į šią eilę.
Objekto pašalinimas () Jis naudojamas šios eilės galvutei nuskaityti ir pašalinti.
Objekto apklausa () Jis naudojamas šios eilės galvutei nuskaityti ir pašalinti arba grąžinti nulį, jei ši eilė tuščia.
Objekto elementas () Jis naudojamas šios eilės vadovui nuskaityti, bet nepašalinti.
Objekto žvilgsnis () Jis naudojamas šios eilės antraštei gauti, bet nepašalina, arba grąžina nulį, jei ši eilė tuščia.

Eilės ypatybės

Toliau pateikiamos kelios svarbios eilės ypatybės.

  • Kaip aptarta anksčiau, FIFO koncepcija naudojama elementams įterpti ir ištrinti iš eilės.
  • „Java Queue“ palaiko visus kolekcijos sąsajos metodus, įskaitant ištrynimą, įterpimą ir kt.
  • „PriorityQueue“, „ArrayBlockingQueue“ ir „LinkedList“ yra dažniausiai naudojami diegimai.
  • NullPointerException iškeliama, jei blokavimo eilėse atliekama bet kokia nulinė operacija.
  • Tos eilės, kurios yra util paketai yra žinomi kaip neapribotos eilės.
  • Tos eilės, kurios yra naudinga paketai yra žinomi kaip apribotos eilės.
  • Visos eilės, draudžiančios Deques, palengvina pašalinimą ir įterpimą eilės pradžioje ir gale; atitinkamai. Tiesą sakant, deques palaiko elementų įdėjimą ir pašalinimą iš abiejų galų.

PriorityQueue klasė

PriorityQueue taip pat yra klasė, apibrėžta rinkimo sistemoje, kuri suteikia mums būdą apdoroti objektus pagal prioritetą. Jau aprašyta, kad objektai įterpiami ir ištrinami pagal FIFO modelį Java eilėje. Tačiau kartais eilės elementus reikia apdoroti pagal prioritetą, čia pradeda veikti PriorityQueue.

PriorityQueue klasės deklaracija

Pažiūrėkime java.util.PriorityQueue klasės deklaraciją.

 public class PriorityQueue extends AbstractQueue implements Serializable 

Java PriorityQueue pavyzdys

Failo pavadinimas: 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()); } } } 
Išbandykite dabar

Išvestis:

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

Java PriorityQueue pavyzdys: knyga

Pažiūrėkime „PriorityQueue“ pavyzdį, kai įtraukiame knygas į eilę ir spausdiname visas knygas. PriorityQueue elementai turi būti palyginamo tipo. Pagal numatytuosius nustatymus eilutės ir įvyniojimo klasės yra palyginamos. Norėdami pridėti vartotojo apibrėžtus objektus į PriorityQueue, turite įdiegti palyginamąją sąsają.

Failo pavadinimas: 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){>