logo

Iterator v Javi

V Javi je an Iterator je eden od kazalcev Java. Java Iterator je vmesnik, ki se uporablja za ponavljanje celotne zbirke komponent objekta Java eno za drugo. Brezplačna je za uporabo v programskem jeziku Java od ogrodja zbirke Java 1.2. Spada v paket java.util.

Čeprav je bil Java Iterator predstavljen v Javi 1.2, še vedno ni najstarejše orodje, ki je na voljo za premikanje po elementih objekta zbirke. Najstarejši Iterator v programskem jeziku Java je Iterator pred Enumeratorjem. Vmesnik Java Iterator nasledi iterator enumeratorja, ki so ga uporabljali na začetku za prečkanje nekaterih dostopnih zbirk, kot je ArrayLists.

Java Iterator je znan tudi kot univerzalni kazalec Jave, saj je primeren za vse razrede ogrodja zbirke. Java Iterator pomaga tudi pri operacijah, kot sta READ in REMOVE. Ko primerjamo vmesnik Java Iterator z vmesnikom enumeratorskega iteratorja, lahko rečemo, da so imena metod, ki so na voljo v Java Iteratorju, bolj natančna in preprosta za uporabo.

Prednosti Java Iteratorja

Iterator v Javi je zaradi številnih prednosti postal zelo razširjen. Prednosti Java Iteratorja so naslednje:

  • Uporabnik lahko uporabi te iteratorje za kateri koli razred ogrodja zbirke.
  • V Java Iteratorju lahko uporabljamo obe operaciji branja in odstranitve.
  • Če uporabnik dela z zanko for, ne more posodobiti (dodati/odstraniti) zbirke, medtem ko lahko, če uporablja Java Iterator, preprosto posodobi zbirko.
  • Iterator Java velja za univerzalni kazalec za API zbirke.
  • Imena metod v Java Iteratorju so zelo enostavna in zelo preprosta za uporabo.

Slabosti Java Iteratorja

Kljub številnim prednostim ima Java Iterator tudi različne pomanjkljivosti. Slabosti Java Iteratorja so navedene spodaj -

  • Java Iterator ohrani iteracijo samo v smeri naprej. Preprosto povedano, Java Iterator je enosmerni Iterator.
  • Java Iterator ne odobri zamenjave in razširitve nove komponente.
  • V operacijah CRUD iterator Java ne vsebuje različnih operacij, kot sta CREATE in UPDATE.
  • V primerjavi s Spliteratorjem Java Iterator ne podpira prečkanja elementov v vzporednem vzorcu, kar pomeni, da Java Iterator podpira samo zaporedno ponavljanje.
  • V primerjavi s Spliteratorjem Java Iterator ne podpira bolj zanesljivega izvajanja za prečkanje množice podatkov.

Kako uporabljati Java Iterator?

Ko mora uporabnik uporabiti Java Iterator, je obvezno narediti primerek vmesnika Iterator iz zbirke objektov, po katerih želi prečkati. Po tem prejeti Iterator vzdržuje sled komponent v osnovni zbirki, da zagotovi, da bo uporabnik prečkal vsakega od elementov zbirke objektov.

Če uporabnik med prečkanjem Iteratorja, ki vodi do te zbirke, spremeni osnovno zbirko, potem bo Iterator to običajno potrdil in vrgel izjemo naslednjič, ko bo uporabnik poskusil pridobiti naslednjo komponento iz Iteratorja.

Metode Java Iterator

Naslednja slika odlično prikazuje razredni diagram vmesnika Java Iterator. Vsebuje skupno štiri metode, ki so:

  • hasNext()
  • Naslednji()
  • Odstrani()
  • forEachRemaining()

The forEachRemaining() metoda je bila dodana v Javi 8. Oglejmo si podrobneje vsako metodo.

    logično hasNext(): Metoda ne sprejema nobenega parametra. Vrne true, če je v ponovitvi ostalo več elementov. Če ne ostane noben element več, bo vrnil false.
    Če v iteraciji ni več preostalih elementov, potem ni treba klicati metode next(). Preprosto povedano, lahko rečemo, da se metoda uporablja za določitev, ali naj bo metoda next() poklicana ali ne.E naslednji():Podobna je metodi hasNext(). Prav tako ne sprejema nobenega parametra. Vrne E, tj. naslednji element v prehodu. Če ponovitev ali zbirka objektov nima več preostalih elementov za ponovitev, vrže izjemo NoSuchElementException.privzeta praznina odstrani():Tudi ta metoda ne zahteva nobenih parametrov. Ta metoda ne obstaja. Glavna funkcija te metode je odstraniti zadnji element, ki ga vrne iterator, ki prečka osnovno zbirko. Metodo odstrani () je mogoče zahtevati komaj enkrat na naslednji klic metode (). Če iterator ne podpira operacije odstranitve, vrže izjemo UnSupportedOperationException. Prav tako vrže izjemo IllegalStateException, če naslednja metoda še ni poklicana.privzeto nično zaEachRemaining(dejanje potrošnika):To je edina metoda Java Iteratorja, ki sprejme parameter. Sprejema dejanje kot parameter. Dejanje ni nič drugega kot to, kar je treba izvesti. Vrnitve metode ni. Ta metoda izvaja določeno operacijo na vseh levih komponentah zbirke, dokler niso porabljene vse komponente ali dejanje vrže izjemo. Izjeme, ki jih vrže dejanje, so dostavljene klicatelju. Če je dejanje ničelno, vrže izjemo NullPointerException.

Primer Java Iteratorja

Zdaj je čas, da izvedemo program Java za ponazoritev prednosti vmesnika Java Iterator. Spodnja koda ustvari ArrayList imen mest. Nato inicializiramo iterator z uporabo metode iterator () seznama ArrayList. Nato se preleti seznam, da se predstavi vsak element.

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(); } } 

Izhod:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Točke, ki si jih je treba zapomniti

  • Java Iterator je vmesnik, dodan v programskem jeziku Java v okviru zbirke Java 1.2. Spada v paket java.util.
  • Je eden od kazalcev Java, ki se uporabljajo za prečkanje objektov ogrodja zbirke.
  • Java Iterator se uporablja za ponavljanje komponent zbirnega objekta eno za drugo.
  • Iterator Java je znan tudi kot univerzalni kazalec Jave, saj je primeren za vse razrede ogrodja zbirke.
  • Java Iterator podpira tudi operacije, kot sta READ in REMOVE.
  • Imena metod razreda Iterator so zelo preprosta in enostavna za uporabo v primerjavi z imeni metod Enumeration Iterator.