Fronta Java: Všetko, čo potrebujete vedieť o fronte v prostredí Java



V tomto článku preberieme populárnu dátovú štruktúru Java známu ako Java Queue. Pre lepšie pochopenie použijeme aj vhodné programové príklady.

je výkonný programovací jazyk a podporuje rôzne dátové štruktúry, aby uľahčil život programátorom. V tomto článku sa pozrieme na jednu takúto dátovú štruktúru, ktorou je Java Queue. Toto sú ukazovatele, na ktoré sa tento článok zameriava,

Začnime teda,





Fronta v Jave

Fronta je dátová štruktúra, ktorá dodržiava princíp FIFO (First-In-First-Out), t. J. Prvky sa vkladajú na koniec zoznamu a odstraňujú sa od začiatku zoznamu. Toto rozhranie je k dispozícii v balíku java.util.package a rozširuje rozhranie Collection.

Fronta podporuje viac metód, vrátane vkladania a mazania. Poradie dostupné v súbore java.util.package je známe ako Neviazané fronty , zatiaľ čo fronty prítomné v balíku java.util.concurrent sú známe, sú Ohraničené fronty.



Všetky fronty, okrem Deques, podporujú vkladanie na konci a mazanie spredu. Štítky podporujú vkladanie a vypúšťanie prvkov na oboch koncoch.

Prejdime k ďalšej téme tohto článku o fronte Java,

Implementácia frontu Java

Aby sme mohli používať rozhranie frontu, musíme vytvoriť inštanciu konkrétnej triedy. Nasleduje niekoľko implementácií, ktoré je možné použiť:



  • util.LinkedList
  • util.PriorityQueue

Pretože tieto implementácie nie sú bezpečné pre vlákna, funguje PriorityBlockingQueue ako alternatíva pre implementáciu bezpečnú pre vlákna.

Príklad:

Poradie q1 = nový LinkedList ()
Poradie q2 = nový PriorityQueue ()

Pozrime sa na niektoré dôležité metódy frontu Java,

Metódy vo fronte Java

  • pridať (): Metóda add () sa používa na vloženie prvkov na koniec alebo na koniec frontu. Metóda sa dedí z rozhrania Collection.
  • ponuka (): Metóda offer () je vhodnejšia ako metóda add (), pretože vkladá zadaný prvok do frontu bez porušenia akýchkoľvek kapacitných obmedzení.
  • nahliadnuť (): Metóda peek () sa používa na pohľad na prednú časť frontu bez jej odstránenia. Ak je rad prázdny, vráti nulovú hodnotu.
  • prvok(): Ak je front prázdny, metóda vyvolá NoSuchElementException.
  • remove (): Metóda remove () odstráni prednú časť frontu a vráti ju. Ak je rad prázdny, hodí NoSuchElementException.
  • anketa (): Metóda poll () odstráni začiatok frontu a vráti ho. Ak je rad prázdny, vráti nulovú hodnotu.

Nasleduje prehľad nasledujúcich metód:

Prevádzka

Vyvoláva výnimku

Vráti hodnotu

Vložte

pridať (prvok)

ponuka (prvok)

kedy použiť. v jave

Odstrániť

odstrániť ()

anketa ()

Preskúmajte

prvok()

nahliadnuť ()

Pozrime sa teraz na ukážku,

zlúčiť triediť c ++ kód

Program na demonštráciu metód frontu

import java.util. * public class Main {public static void main (String [] args) {// Nemôžeme vytvoriť inštanciu Queue, pretože ide o rozhranie, preto Queue q1 = new LinkedList () // Pridávanie prvkov do front q1.add ('I') q1.add ('Love') q1.add ('Rock') q1.add ('And') q1.add ('Roll') System.out.println ('Elements vo fronte: '+ q1) / * * Môžeme odstrániť prvok z frontu metódou remove (), * týmto sa odstráni prvý prvok z frontu * / System.out.println (' Odstránený prvok: '+ q1.remove ( )) / * * element () metóda - vráti hlavičku * frontu. Metóda * / System.out.println ('Head:' + q1.element ()) / * * poll () - odstráni a vráti * hlavu frontu. Vráti hodnotu null, ak je fronta prázdna * / System.out.println ('poll ():' + q1.poll ()) / * * metóda peek () - funguje rovnako ako metóda element (), * vráti sa však null ak je fronta prázdna * / System.out.println ('peek ():' + q1.peek ()) // Zobrazenie prvkov Queue System.out.println ('Elements in Queue:' + q1)} }

Výkon:

Prvky v poradí: [I, Love, Rock, And, Roll]

Odstránený prvok: I

Hlava: Láska

anketa (): Láska

nahliadnuť (): Skala

Prvky v poradí: [Rock, And, Roll]. Vo vyššie uvedenom príklade sa použila generická fronta.

V tomto type frontu môžeme obmedziť typ objektu vloženého do frontu. V našom príklade môžeme mať do frontu vložené iba reťazcové inštancie.

Iterácia frontom Java

Prvky vo fronte java je možné iterovať pomocou nasledujúceho kódu:

Poradie q1 = nový LinkedList ()

q1.add („Rock“)

q1.add („A“)

q1.add („Roll“)

// prístup cez Iterator

Iterátor iterátor = q1.iterator ()

while (iterator.hasNext () {

Reťazcový prvok = (Reťazec) iterator.next ()

}

// prístup cez nový cyklus for-loop

pre (Objekt objektu: q1) {

String element = (String) objekt

}

Poradie, v ktorom sú prvky iterované, závisí od implementácie frontu.

Aj keď existuje veľa metód, ktoré môže Java Queue implementovať, tu boli rozobrané najdôležitejšie metódy.

čo je typ casting v Jave

Týmto sme sa dostali na koniec tohto článku o „Java Queue“. Ak sa chcete dozvedieť viac,pozrite sa na Edureka, dôveryhodná online vzdelávacia spoločnosť. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je navrhnutý tak, aby vás vyškolil na základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.