logo

Iterator i Java

I Java, en Iterator er en af ​​Java-markørerne. Java Iterator er en grænseflade, der praktiseres for at iterere over en samling af Java-objektkomponenter i sin helhed én efter én. Det er gratis at bruge i Java-programmeringssproget siden Java 1.2 Collection frameworket. Det tilhører java.util-pakken.

Selvom Java Iterator blev introduceret i Java 1.2, er det dog stadig ikke det ældste værktøj, der er tilgængeligt til at gennemgå elementerne i Collection-objektet. Den ældste Iterator i Java-programmeringssproget er Enumerator forud for Iterator. Java Iterator-grænsefladen efterfølger enumerator-iteratoren, der blev praktiseret i begyndelsen til at krydse nogle tilgængelige samlinger som ArrayLists.

Java Iterator er også kendt som universel markør af Java, da det er passende for alle klasser i samlingsrammen. Java Iterator hjælper også med operationer som LÆS og FJERN. Når vi sammenligner Java Iterator-grænsefladen med enumeration iterator-grænsefladen, kan vi sige, at navnene på de tilgængelige metoder i Java Iterator er mere præcise og ligetil at bruge.

Fordele ved Java Iterator

Iterator i Java blev meget udbredt på grund af dets mange fordele. Fordelene ved Java Iterator er givet som følger -

  • Brugeren kan anvende disse iteratorer til enhver af klasserne i samlingsrammen.
  • I Java Iterator kan vi bruge både læse- og fjernoperationerne.
  • Hvis en bruger arbejder med en for-løkke, kan de ikke modernisere (tilføje/fjerne) samlingen, hvorimod, hvis de bruger Java Iterator, kan de blot opdatere samlingen.
  • Java Iterator betragtes som Universal Cursor for Collection API.
  • Metodenavnene i Java Iterator er meget nemme og er meget nemme at bruge.

Ulemper ved Java Iterator

På trods af de mange fordele har Java Iterator også forskellige ulemper. Ulemperne ved Java Iterator er angivet nedenfor -

  • Java Iterator bevarer kun iterationen i fremadgående retning. Med enkle ord er Java Iterator en ensrettet iterator.
  • Udskiftning og udvidelse af en ny komponent er ikke godkendt af Java Iterator.
  • I CRUD Operations holder Java Iterator ikke de forskellige operationer som CREATE og UPDATE.
  • I sammenligning med Spliterator understøtter Java Iterator ikke krydsende elementer i det parallelle mønster, hvilket indebærer, at Java Iterator kun understøtter sekventiel iteration.
  • I sammenligning med Spliterator understøtter Java Iterator ikke mere pålidelig udførelse til at krydse hovedmængden af ​​data.

Hvordan bruger man Java Iterator?

Når en bruger skal bruge Java Iterator, så er det obligatorisk for dem at lave en instans af Iterator-grænsefladen fra samlingen af ​​objekter, de ønsker at krydse over. Derefter vedligeholder den modtagne iterator sporet af komponenterne i den underliggende samling for at sikre, at brugeren vil krydse hvert af elementerne i samlingen af ​​objekter.

Hvis brugeren ændrer den underliggende samling, mens han går over en iterator, der fører til den samling, så vil iteratoren typisk anerkende det og vil kaste en undtagelse i næste gang, når brugeren vil forsøge at hente den næste komponent fra iteratoren.

Java Iterator metoder

Følgende figur viser perfekt klassediagrammet for Java Iterator-grænsefladen. Den indeholder i alt fire metoder, der er:

  • hasNext()
  • Næste()
  • fjerne()
  • forEachRemaining()

Det forEachRemaining() metode blev tilføjet i Java 8. Lad os diskutere hver metode i detaljer.

    boolean hasNext(): Metoden accepterer ikke nogen parameter. Det returnerer sandt, hvis der er flere elementer tilbage i iterationen. Hvis der ikke er flere elementer tilbage, vil det returnere falsk.
    Hvis der ikke er flere elementer tilbage i iterationen, er der ingen grund til at kalde metoden next(). Med enkle ord kan vi sige, at metoden bruges til at bestemme, om metoden next() skal kaldes eller ej.E næste():Det ligner hasNext()-metoden. Den accepterer heller ikke nogen parameter. Det returnerer E, dvs. det næste element i gennemløbet. Hvis iterationen eller samlingen af ​​objekter ikke har flere elementer tilbage at iterere, kaster den NoSuchElementException.standard void remove():Denne metode kræver heller ingen parametre. Der er ingen returtype af denne metode. Hovedfunktionen af ​​denne metode er at fjerne det sidste element, der returneres af iteratoren, der krydser den underliggende samling. Fjern ()-metoden kan næsten ikke anmodes én gang pr. næste ()-metodekald. Hvis iteratoren ikke understøtter fjernoperationen, kaster den UnSupportedOperationException. Det kaster også IllegalStateException, hvis den næste metode endnu ikke er kaldt.standard void forEachRemaining(Forbrugerhandling):Det er den eneste metode til Java Iterator, der tager en parameter. Den accepterer handling som en parameter. Handling er intet andet end det, der skal udføres. Der er ingen returtype af metoden. Denne metode udfører den specificerede operation på alle de venstre komponenter i samlingen, indtil alle komponenterne er forbrugt, eller handlingen giver en undtagelse. Undtagelser smidt af handling leveres til den, der ringer. Hvis handlingen er null, kaster den en NullPointerException.

Eksempel på Java Iterator

Nu er det tid til at køre et Java-program for at illustrere fordelen ved Java Iterator-grænsefladen. Nedenstående kode producerer en ArrayList af bynavne. Derefter initialiserer vi en iterator ved at anvende iterator () metoden i ArrayList. Derefter gennemløbes listen for at repræsentere 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(); } } 

Produktion:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Punkter at huske

  • Java Iterator er en grænseflade tilføjet i Java-programmeringssproget i Java 1.2 Collection-rammerne. Det tilhører java.util-pakken.
  • Det er en af ​​Java-markørerne, der øves til at krydse objekterne i samlingsrammen.
  • Java Iterator bruges til at iterere komponenterne i samlingsobjektet én efter én.
  • Java Iterator er også kendt som den universelle markør for Java, da den er passende for alle klasserne i samlingsrammen.
  • Java Iterator understøtter også operationer som LÆS og FJERN.
  • Metodenavnene i Iterator-klassen er meget enkle og nemme at bruge sammenlignet med metodenavnene for Enumeration Iterator.