logo

Iterator i Java

I Java, en Iterator er en av Java-pekerne. Java Iterator er et grensesnitt som praktiseres for å iterere over en samling av Java-objektkomponenter i sin helhet én etter én. Det er gratis å bruke i programmeringsspråket Java siden Java 1.2 Collection-rammeverket. Den tilhører java.util-pakken.

Selv om Java Iterator ble introdusert i Java 1.2, er det fortsatt ikke det eldste verktøyet som er tilgjengelig for å gå gjennom elementene i Collection-objektet. Den eldste iteratoren i Java-programmeringsspråket er Enumerator-forutgående Iterator. Java Iterator-grensesnittet etterfølger enumerator-iteratoren som ble praktisert i begynnelsen for å krysse over noen tilgjengelige samlinger som ArrayLists.

Java Iterator er også kjent som universell markør av Java ettersom det passer for alle klassene i samlingsrammeverket. Java Iterator hjelper også med operasjoner som READ og FJERN. Når vi sammenligner Java Iterator-grensesnittet med enumeration iterator-grensesnittet, kan vi si at navnene på metodene som er tilgjengelige i Java Iterator er mer presise og enkle å bruke.

Fordeler med Java Iterator

Iterator i Java ble veldig utbredt på grunn av sine mange fordeler. Fordelene med Java Iterator er gitt som følger -

  • Brukeren kan bruke disse iteratorene på hvilken som helst av klassene i samlingsrammeverket.
  • I Java Iterator kan vi bruke både lese- og fjernoperasjoner.
  • Hvis en bruker jobber med en for-løkke, kan de ikke modernisere (legge til/fjerne) samlingen, mens hvis de bruker Java Iterator, kan de ganske enkelt oppdatere samlingen.
  • Java Iterator regnes som Universal Cursor for Collection API.
  • Metodenavnene i Java Iterator er veldig enkle og er veldig enkle å bruke.

Ulemper med Java Iterator

Til tross for de mange fordelene, har Java Iterator også forskjellige ulemper. Ulempene med Java Iterator er gitt nedenfor -

  • Java Iterator bevarer bare iterasjonen i foroverretningen. Med enkle ord er Java Iterator en enveis Iterator.
  • Utskifting og utvidelse av en ny komponent er ikke godkjent av Java Iterator.
  • I CRUD Operations holder ikke Java Iterator de forskjellige operasjonene som CREATE og UPDATE.
  • Sammenlignet med Spliterator, støtter ikke Java Iterator kryssende elementer i det parallelle mønsteret, noe som innebærer at Java Iterator kun støtter sekvensiell iterasjon.
  • Sammenlignet med Spliterator, støtter ikke Java Iterator mer pålitelig utførelse for å krysse bulkvolumet av data.

Hvordan bruker jeg Java Iterator?

Når en bruker trenger å bruke Java Iterator, er det obligatorisk for dem å lage en forekomst av Iterator-grensesnittet fra samlingen av objekter de ønsker å krysse over. Etter det opprettholder den mottatte iteratoren sporet til komponentene i den underliggende samlingen for å sikre at brukeren vil krysse over hvert av elementene i samlingen av objekter.

Hvis brukeren modifiserer den underliggende samlingen mens han går over en iterator som fører til den samlingen, vil iteratoren vanligvis erkjenne det og vil kaste et unntak neste gang når brukeren vil forsøke å hente den neste komponenten fra iteratoren.

Java Iterator-metoder

Følgende figur viser perfekt klassediagrammet til Java Iterator-grensesnittet. Den inneholder totalt fire metoder som er:

  • hasNext()
  • neste()
  • fjerne()
  • forEachRemaining()

De forEachRemaining() metode ble lagt til i Java 8. La oss diskutere hver metode i detalj.

    boolsk hasNext(): Metoden godtar ingen parameter. Det returnerer sant hvis det er flere elementer igjen i iterasjonen. Hvis det ikke er flere elementer igjen, vil det returnere false.
    Hvis det ikke er flere elementer igjen i iterasjonen, er det ikke nødvendig å kalle neste()-metoden. Med enkle ord kan vi si at metoden brukes til å bestemme om neste()-metoden skal kalles eller ikke.E neste():Den ligner på hasNext()-metoden. Den godtar heller ingen parameter. Den returnerer E, dvs. det neste elementet i traverseringen. Hvis iterasjonen eller samlingen av objekter ikke har flere elementer igjen å iterere, kaster den NoSuchElementException.standard void remove():Denne metoden krever heller ingen parametere. Det er ingen returtype for denne metoden. Hovedfunksjonen til denne metoden er å fjerne det siste elementet som returneres av iteratoren som går gjennom den underliggende samlingen. Fjern ()-metoden kan knapt bes om én gang per neste () metodekall. Hvis iteratoren ikke støtter fjerningsoperasjonen, kaster den UnSupportedOperationException. Den kaster også IllegalStateException hvis neste metode ikke er kalt ennå.standard void forEachRemaining(forbrukerhandling):Det er den eneste metoden for Java Iterator som tar en parameter. Den aksepterer handling som en parameter. Handling er ingenting annet enn det som skal utføres. Det er ingen returtype for metoden. Denne metoden utfører den spesifiserte operasjonen på alle de venstre komponentene i samlingen til alle komponentene er konsumert eller handlingen gir et unntak. Unntak slengt av handling blir levert til den som ringer. Hvis handlingen er null, kaster den et NullPointerException.

Eksempel på Java Iterator

Nå er det på tide å kjøre et Java-program for å illustrere fordelen med Java Iterator-grensesnittet. Koden nedenfor produserer en ArrayList med bynavn. Deretter initialiserer vi en iterator ved å bruke iterator ()-metoden til ArrayList. Etter det krysses listen for å representere hvert element.

arv i c++

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

Produksjon:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Poeng å huske

  • Java Iterator er et grensesnitt lagt til i Java-programmeringsspråket i Java 1.2 Collection-rammeverket. Den tilhører java.util-pakken.
  • Det er en av Java-markørene som øves på å krysse objektene i samlingsrammeverket.
  • Java Iterator brukes til å iterere komponentene i samlingsobjektet én etter én.
  • Java Iterator er også kjent som den universelle markøren til Java, da den passer for alle klassene i samlingsrammeverket.
  • Java Iterator støtter også operasjoner som READ og REMOVE.
  • Metodenavnene til Iterator-klassen er veldig enkle og enkle å bruke sammenlignet med metodenavnene til Enumeration Iterator.