Java-wachtrij: alles wat u moet weten over wachtrij in Java



In dit artikel nemen we een populaire Java-datastructuur die bekend staat als Java Queue. We zullen ook geschikte programmatische voorbeelden gebruiken voor een beter begrip.

is een krachtige programmeertaal en ondersteunt verschillende datastructuren om het leven van programmeurs gemakkelijk te maken. In dit artikel zullen we een dergelijke datastructuur bekijken, namelijk Java Queue. Dit zijn de tips waarop dit artikel zich richt,

Laten we dan beginnen,





Wachtrij in Java

Een wachtrij is een datastructuur die het principe van FIFO (First-In-First-Out) volgt, d.w.z. de elementen worden aan het einde van de lijst ingevoegd en aan het begin van de lijst verwijderd. Deze interface is beschikbaar in het java.util.package en breidt de collectie-interface uit.

Queue ondersteunt meerdere methoden, waaronder invoegen en verwijderen. De wachtrijen die beschikbaar zijn in java.util.package staan ​​bekend als Onbegrensde wachtrijen , terwijl de wachtrijen die aanwezig zijn in het pakket java.util.concurrent bekend zijn Begrensde wachtrijen.



Alle wachtrijen, behalve de Deques, ondersteunen invoeging aan het einde en verwijderen vanaf de voorkant. Deques ondersteunen het inbrengen en verwijderen van elementen aan beide uiteinden.

Laten we naar het volgende onderwerp van dit artikel over Java Queue gaan,

Implementatie van Java-wachtrij

Om de wachtrij-interface te gebruiken, moeten we een concrete klasse maken. Hieronder volgen enkele implementaties die kunnen worden gebruikt:



  • util.LinkedList
  • util.PriorityQueue

Aangezien deze implementaties niet threadveilig zijn, fungeert PriorityBlockingQueue als een alternatief voor threadveilige implementatie.

Voorbeeld:

Wachtrij q1 = nieuwe LinkedList ()
Wachtrij q2 = nieuwe PriorityQueue ()

Laten we eens kijken naar enkele belangrijke Java Queue-methoden,

Methoden in Java-wachtrij

  • toevoegen(): De add () methode wordt gebruikt om elementen aan het einde of aan het einde van de wachtrij in te voegen. De methode is overgenomen van de collectie-interface.
  • aanbod(): De offer () methode heeft de voorkeur boven de add () methode, omdat het het gespecificeerde element in de wachtrij invoegt zonder enige capaciteitsbeperkingen te overtreden.
  • kijkje(): De methode peek () wordt gebruikt om naar de voorkant van de wachtrij te kijken zonder deze te verwijderen. Als de wachtrij leeg is, retourneert deze een null-waarde.
  • element(): Als de wachtrij leeg is, genereert de methode NoSuchElementException.
  • verwijderen(): De methode remove () verwijdert de voorkant van de wachtrij en retourneert deze. Gooit NoSuchElementException als de wachtrij leeg is.
  • poll (): De poll () methode verwijdert het begin van de wachtrij en geeft deze terug. Als de wachtrij leeg is, retourneert deze een null-waarde.

Een overzicht van de volgende methoden wordt als volgt gegeven:

finale vs eindelijk vs finaliseren
Operatie

Gooit uitzondering

Geeft waarde terug

Invoegen

add (element)

aanbieding (element)

Verwijderen

verwijderen()

poll ()

Onderzoeken

element()

kijkje()

Laten we nu de demonstratie bekijken,

Programma om wachtrij-methoden te demonstreren

import java.util. * public class Main {public static void main (String [] args) {// We kunnen geen instantie van een wachtrij maken omdat het een interface is, dus we Queue q1 = new LinkedList () // Elementen toevoegen aan de wachtrij q1.add ('I') q1.add ('Love') q1.add ('Rock') q1.add ('And') q1.add ('Roll') System.out.println ('Elements in Queue: '+ q1) / * * We kunnen een element uit Queue verwijderen met de remove () methode, * dit verwijdert het eerste element uit de Queue * / System.out.println (' Removed element: '+ q1.remove ( )) / * * element () methode - dit geeft de kop van de * Queue terug. * / System.out.println ('Head:' + q1.element ()) / * * poll () methode - dit verwijdert en retourneert de * head van de wachtrij. Retourneert null als de wachtrij leeg is * / System.out.println ('poll ():' + q1.poll ()) / * * peek () methode - het werkt hetzelfde als element () methode, * maar het retourneert null als de wachtrij leeg is * / System.out.println ('peek ():' + q1.peek ()) // Weergave van de elementen van wachtrij System.out.println ('Elements in Queue:' + q1)} }

Uitgang:

Elementen in wachtrij: [I, Love, Rock, And, Roll]

Verwijderd element: I

control flow statements in java

Hoofd: liefde

poll (): Liefde

peek (): Rock

Elementen in wachtrij: [Rock, And, Roll]. In het bovenstaande voorbeeld is Generic Queue gebruikt.

In dit type wachtrij kunnen we het type object dat in de wachtrij wordt ingevoegd, beperken. In ons voorbeeld kunnen we alleen stringinstanties in de wachtrij laten invoegen.

Itereren via een Java-wachtrij

Elementen in een java-wachtrij kunnen worden herhaald met de volgende code:

Wachtrij q1 = nieuwe LinkedList ()

q1.add ('Rock')

q1.add ('En')

q1.add ('Roll')

// toegang via Iterator

Iterator iterator = q1.iterator ()

while (iterator.hasNext () {

String element = (String) iterator.next ()

}

// toegang via nieuwe for-loop

voor (Object object: q1) {

String-element = (String) -object

}

De volgorde waarin de elementen worden herhaald, is afhankelijk van de implementatie van de wachtrij.

Hoewel er meerdere methoden zijn die een Java-wachtrij kan implementeren, zijn de belangrijkste methoden hier besproken.

Hiermee zijn we aan het einde gekomen van dit artikel over ‘Java Queue’. Als u meer wilt weten,bekijk de door Edureka, een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.