Java Red čekanja: Sve što trebate znati o redu čekanja u Javi

U ovom ćemo članku uzeti popularnu strukturu podataka Java poznatu kao Java Queue. Za bolje razumijevanje poslužit ćemo se i prikladnim programskim primjerima.

moćan je programski jezik i podržava razne strukture podataka kako bi olakšao život programera. U ovom ćemo članku pogledati jednu takvu strukturu podataka koja je Java Queue. Ovo su upute na koje se ovaj članak fokusira,

Krenimo onda,





Red u Javi

Red čekanja je struktura podataka koja slijedi princip FIFO (First-In-First-Out) tj. Elementi su umetnuti na kraj popisa i izbrisani s početka popisa. Ovo sučelje je dostupno u java.util.package i proširuje sučelje za prikupljanje.

Red čekanja podržava više metoda, uključujući umetanje i brisanje. Redovi dostupni u java.util.package poznati su kao Neograničeni redovi , dok su redovi prisutni u java.util.concurrent paketu poznati Ograničeni redovi.



Svi redovi, osim Dequeova, podržavaju umetanje na kraju i brisanje s prednje strane. Deques podržavaju umetanje i brisanje elemenata na oba kraja.

Prijeđimo na sljedeću temu ovog članka o Java Queue,

Implementacija Java reda čekanja

Da bismo koristili sučelje reda, moramo instancirati konkretnu klasu. Slijedi nekoliko implementacija koje se mogu koristiti:



  • util.LinkedList
  • util.PriorityQueue

Budući da ove implementacije nisu sigurne u niti, PriorityBlockingQueue djeluje kao alternativa za implementaciju sigurnu u niti.

Primjer:

Red čekanja q1 = novi LinkedList ()
Red čekanja q2 = novi PriorityQueue ()

Pogledajmo neke važne metode Java Queue,

Metode u Java Queue

  • dodati(): Metoda add () koristi se za umetanje elemenata na kraju ili u rep reda. Metoda je naslijeđena od sučelja Collection.
  • ponuda(): Metoda offer () poželjnija je od metode add () jer ubacuje navedeni element u red bez kršenja ograničenja kapaciteta.
  • zaviriti (): Metoda peek () koristi se za gledanje prednjeg dijela reda bez uklanjanja. Ako je red prazan, vraća null vrijednost.
  • element(): Ako je red prazan, metoda baca NoSuchElementException.
  • ukloniti(): Metoda remove () uklanja prednji dio reda i vraća ga. Baca NoSuchElementException ako je red prazan.
  • anketa(): Metoda poll () uklanja početak reda i vraća ga. Ako je red prazan, vraća null vrijednost.

Daje se pregled sljedećih metoda:

Operacija

Baca iznimku

Vraća vrijednost

Umetnuti

dodaj (element)

ponuda (element)

Ukloniti

ukloniti()

anketa()

Ispitati, pregledati

element()

zaviriti ()

Pogledajmo sada demonstraciju,

Program za demonstraciju metoda čekanja

import java.util. * javna klasa Main {public static void main (String [] args) {// Ne možemo stvoriti instancu reda čekanja jer je to sučelje, pa zato postavljamo red q1 = new LinkedList () // Dodavanje elemenata red čekanja q1.add ('I') q1.add ('Ljubav') q1.add ('Rock') q1.add ('I') q1.add ('Roll') System.out.println ('Elementi u redu čekanja: '+ q1) / * * Element možemo ukloniti iz reda čekanja metodom remove (), * ovo uklanja prvi element iz reda čekanja * / System.out.println (' Uklonjeni element: '+ q1.remove ( )) / * * metoda element () - ovo vraća glavu * Reda čekanja. * / System.out.println ('Head:' + q1.element ()) / * * metoda ankete () - ovim se uklanja i vraća * glava reda. Vraća nulu ako je Red čekanja prazan * / System.out.println ('poll ():' + q1.poll ()) / * * metoda peek () - radi isto kao i metoda element (), * međutim vraća se null ako je Red čekanja prazan * / System.out.println ('peek ():' + q1.peek ()) // Prikazivanje elemenata Queue System.out.println ('Elementi u redu:' + q1)} }

Izlaz:

c ++ pomoću prostora imena

Elementi u redu: [Ja, ljubav, rock i rola]

Uklonjeni element: I

Glava: Ljubav

anketa (): Ljubav

zaviriti (): Stijena

Elementi u redu čekanja: [Rock, And, Roll]. U gornjem primjeru korišten je generički red.

U ovoj vrsti reda možemo ograničiti vrstu objekta umetnutog u red. U našem primjeru možemo imati samo niz instanci umetnutih u red čekanja.

Iteriranje kroz Java red

Elementi u Java redu čekanja mogu se ponoviti pomoću sljedećeg koda:

Red čekanja q1 = novi LinkedList ()

q1.add ('Rock')

q1.add ('I')

q1.add ('svitak')

// pristup putem Iteratora

Iterator iterator = q1.iterator ()

while (iterator.hasNext () {

String element = (String) iterator.next ()

}

// pristup putem nove for-petlje

za (Objekt objekt: q1) {

String element = (String) objekt

}

Slijed u kojem se elementi ponavljaju ovisi o provedbi reda.

Iako postoji više metoda koje Java Queue može implementirati, ovdje su raspravljene najvažnije metode.

Tako smo došli do kraja ovog članka o 'Java Queue'. Ako želite saznati više,provjerite Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.