Hvad er Iterator i Java, og hvordan bruges det?



Iterator i Java-blog vil give dig en ordentlig introduktion til, hvad der er en iterator, og hvordan man bruger disse i Java med et par eksempler

Hvis du arbejder på en og sig, at du vil udskrive en sekvens, det er her Iterator i Java kommer ind i billedet. På denne måde kan du få sekvensen selv uden at tilføje udskriftserklæringen for hver enkelt linje. Så lad os lære om Iterator i .

Nedenfor er de emner, jeg vil dække i dette modul:





Lad os komme igang!

Hvad er en iterator?

Java understøtter hovedsageligt fire forskellige markører. De er nemlig:



  • Optælling
  • Iterator
  • ListIterator
  • Splitter

Hver af disse Java-markører har nogle fordele og ulemper. Vi fokuserer på Iterator i denne artikel.

Hvad er en iterator i Java nu?

Iterator er en grænseflade, der hører til en samlingsramme. Det giver dig mulighed for at krydse samlingen, få adgang til dataelementet og fjerne dataelementerne i samlingen.



sorteringsfunktion i c ++

Det betragtes også som en universel iterator, da du kan anvende det på enhver objekt. Ved at bruge en Iterator kan du udføre både læse og fjerne operationer. Dette er en forbedret version af Optælling med de ekstra funktioner til fjernelse af et element.

Java Iterator-metoder

Java iterator har i alt 4 metoder. Lad os forstå dem detaljeret.

MetoderBeskrivelse
forEachRemaining (forbruger)Det udfører handlingerne på hvert af elementet, indtil og medmindre alle elementerne er blevet behandlet. Også indtil en undtagelse kastes af handlingen.
hasNext ()Dette vender tilbage en ægte værdi, hvis der opstår et stort antal elementer under iteration.
Næste()Dette vender tilbage det næste specificerede element under iterationen.
fjerne()Denne metode rfjerner det aktuelle element. Kaster IllegalStateException hvis der gøres et forsøg på at ringe til fjern (), der ikke er forud for et opkald til næste ().
boolsk hasNext ()Dette vender tilbage, hvis iterationen har flere elementer.

Eksempel:

klasse Metode {public static void main (String [] args) ArrayList list = new ArrayList () list.add ('E') list.add ('D') list.add ('U') list.add ('R ') list.add (' E ') list.add (' K ') list.add (' A ') // Iterator for at krydse listen Iterator iterator = list.iterator () System.out.println (' Listeelementer : ') mens (iterator.hasNext ()) System.out.print (iterator.next () +' ') System.out.println ()}}

Output: EDUREKA

Lad os se på ListIterator i Java.

ListIterator i Java

ved hjælp af scannerklassen i java

ListIterator i Java er en Iterator, der giver brugerne mulighed for at krydse samlingen i begge retninger. Den indeholder følgende metoder:

MetoderMetode og beskrivelse
ugyldig tilføjelse (Objekt obj) Indsatser modsætter sig listen over elementet, der returneres ved næste opkald til næste ().
boolsk hasNext () Returnerer sandt, hvis der er det næste element. Ellers returnerer falsk.
boolean hasPrevious () Returnerer sandt, hvis der er et tidligere element. Ellers returnerer falsk.
Objekt næste () Returnerer det næste element. En NoSuchElementException kastes, hvis der ikke er det næste element.
int nextIndex () Returnerer indekset for det næste element. Hvis der ikke er det næste element, returneres størrelsen på listen.
Objekt forrige () Returnerer det forrige element. En NoSuchElementException kastes, hvis der ikke er et tidligere element.
int previousIndex () Returnerer indekset for det forrige element. Hvis der ikke er et tidligere element, returneres -1.
ugyldig fjern () Fjerner det aktuelle element fra listen. En IllegalStateException kastes, hvis remove () kaldes, før næste () eller forrige () påberåbes.
ugyldigt sæt (Objekt obj) Tildeler modsætter sig det aktuelle element. Dette er det element, der sidst blev returneret af et opkald til enten næste () eller forrige ().

Eksempel:

public class Lists {public static void main (String args []) {// Opret en array-liste ArrayList al = new ArrayList () // tilføj elementer til array-listen al.add ('E') al.add ('D ') al.add (' U ') al.add (' R ') al.add (' E ') al.add (' K ') al.add (' A ') // Brug iterator til at vise indholdet af al System.out.print ('Original indhold af al:') Iterator itr = al.iterator () mens (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '' )} System.out.println () // Modificer objekter, der gentages ListIterator litr = al.listIterator () mens (litr.hasNext ()) {Object element = litr.next () litr.set (element + '+') } System.out.print ('Modificeret indhold af al:') itr = al.iterator () mens (itr.hasNext ()) {Objektelement = itr.next () System.out.print (element + '') } System.out.println () // Vis nu listen bagud System.out.print ('Modificeret liste baglæns:') mens (litr.hasPrevious ()) {Objektelement = litr.previous () System.out. print (element + '')} System.out.println ()}}

Produktion:

Originalindholdet af al:E D U R E K A
Ændretindholdet af al:ER+D+U+R+ER+TIL+ A +
Ændretliste baglæns:TIL+TIL+ER+R+U+D+ OG +

abstraktion i c ++

Lad os nu se på fordelene og begrænsningerne ved denne iterator-grænseflade i Java.

Fordele ved Iterator i Java

Iterator i Java har følgende fordele.

  • Du kan bruge disse iteratorer til enhver samlingsklasse.
  • Iterator i Java understøtter begge dele Læs såvel som fjerne operationer.
  • Hvis du bruger til løkke du kan ikke opdater (tilføj / fjern) samlingen, mens du ved hjælp af en iterator let kan opdatere samlingen.
  • Det er en universal markør til Collection API.
  • Metodenavnene er meget enkle og meget lette at bruge.

Begrænsninger af Iterator i Java

Iteratorer i Java har følgende ulemper:

  • Du kan kun udføre fremadrettet iteration, det vil sige Uni-Directional Iterator.
  • Udskiftning og tilføjelse af et nyt element understøttes ikke af Iteratoren.
  • ListIterator er den mest kraftfulde iterator, men den gælder kun for List-implementerede klasser. Så det er ikke en universel iterator.
  • Når du bruger CRUD-operationer, understøtter det ikke oprettelses- og opdateringshandlinger.
  • Når du sammenligner det med Spliterator, lader det dig ikke gentage elementer parallelt. Dette betyder, at det kun understøtter sekventiel iteration.
  • Det understøtter ikke bedre ydelse for at gentage en stor datamængde.

Dette bringer os til slutningen af ​​denne artikel, hvor vi har lært om, hvordan iterator i Java fungerer. Håber du er klar med alt, hvad der er delt med dig i denne vejledning.

Hvis du fandt denne artikel om 'Iterator i Java' relevant, skal du tjekke et betroet online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

Vi er her for at hjælpe dig med hvert trin på din rejse, udover dette kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Hvis du støder på spørgsmål, er du velkommen til at stille alle dine spørgsmål i kommentarfeltet i 'Iterator i Java', og vores team vil med glæde svare.