logo

Java-jonon käyttöliittymä

Käyttöliittymäjono on saatavilla java.util-paketissa ja laajentaa Collection-käyttöliittymää. Sitä käytetään pitämään elementit, jotka käsitellään FIFO (First In First Out) -tavalla. Se on järjestetty objektiluettelo, jossa elementit lisätään luettelon loppuun ja elementtien poisto tapahtuu luettelon alussa.

Rajapintana jono vaatii ilmoitusta varten konkreettisen luokan, ja yleisimmät luokat ovat LinkedList ja PriorityQueue Javassa. Näiden luokkien toteuttamat toteutukset eivät ole säikeen turvallisia. Jos vaaditaan säikeen turvallinen toteutus, PriorityBlockingQueue on käytettävissä vaihtoehto.

Jonon käyttöliittymän ilmoitus

 public interface Queue extends Collection 

Java-jonoliittymän menetelmät

Menetelmä Kuvaus
boolen lisäys(objekti) Sitä käytetään lisäämään määritetty elementti tähän jonoon ja palauttamaan true onnistuessaan.
boolen tarjous(objekti) Sitä käytetään määritetyn elementin lisäämiseen tähän jonoon.
Objektin poistaminen() Sitä käytetään tämän jonon pään hakemiseen ja poistamiseen.
Objektikysely() Sitä käytetään hakemaan ja poistamaan tämän jonon pää tai palauttamaan nollan, jos tämä jono on tyhjä.
Objektielementti() Sitä käytetään tämän jonon pään hakemiseen, mutta se ei poista sitä.
Object peek () Sitä käytetään tämän jonon pään hakemiseen, mutta se ei poista sitä, tai palauttaa nolla-arvon, jos tämä jono on tyhjä.

Jonon ominaisuudet

Seuraavassa on joitain tärkeitä jonon ominaisuuksia.

  • Kuten aiemmin mainittiin, FIFO-konseptia käytetään elementtien lisäämiseen ja poistamiseen jonosta.
  • Java-jono tukee kaikkia Collection-rajapinnan menetelmiä, mukaan lukien poistaminen, lisääminen jne.
  • PriorityQueue, ArrayBlockingQueue ja LinkedList ovat useimmin käytetyt toteutukset.
  • NullPointerException nostetaan esiin, jos jokin nollatoiminto suoritetaan BlockingQueuesissa.
  • Ne jonot, jotka ovat läsnä util Paketit tunnetaan nimellä Unbounded Queues.
  • Ne jonot, jotka ovat läsnä hyödyllinen pakettia kutsutaan rajoittuneiksi jonoiksi.
  • Kaikki jonot, jotka estävät dequet, helpottavat poistamista ja lisäämistä jonon kärkeen ja loppupäähän; vastaavasti. Itse asiassa deques tukee elementtien lisäämistä ja poistamista molemmista päistä.

PriorityQueue Class

PriorityQueue on myös kokoelmakehyksessä määritelty luokka, joka antaa meille tavan käsitellä kohteita prioriteetin perusteella. On jo kuvattu, että objektien lisääminen ja poistaminen noudattaa FIFO-kuviota Java-jonossa. Joskus jonon elementit on kuitenkin käsiteltävä prioriteetin mukaan, jolloin PriorityQueue tulee toimeen.

PriorityQueue-luokan ilmoitus

Katsotaanpa luokan java.util.PriorityQueue ilmoitus.

 public class PriorityQueue extends AbstractQueue implements Serializable 

Java PriorityQueue -esimerkki

Tiedoston nimi: 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()); } } } 
Testaa nyt

Lähtö:

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

Java PriorityQueue Esimerkki: Kirja

Katsotaanpa esimerkkiä PriorityQueue:sta, jossa lisäämme kirjoja jonoon ja tulostamme kaikki kirjat. PriorityQueuen elementtien on oltava tyyppiä Comparable. String- ja Wrapper-luokat ovat oletuksena vertailukelpoisia. Jos haluat lisätä käyttäjän määrittämiä objekteja PriorityQueueen, sinun on otettava käyttöön vertailukelpoinen käyttöliittymä.

Tiedoston nimi: LinkedListExample.java

imessage-pelit Androidilla
 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){>