logo

Iteraattori Javassa

Javassa an Iteraattori on yksi Java-kursoreista. Java Iterator on käyttöliittymä, jota harjoitetaan iteroimaan Java-objektien komponenttien kokoelma yksitellen. Sitä voi käyttää ilmaiseksi Java-ohjelmointikielellä Java 1.2 Collection -kehyksestä lähtien. Se kuuluu java.util-pakettiin.

Vaikka Java Iterator otettiin käyttöön Java 1.2:ssa, se ei silti ole vanhin käytettävissä oleva työkalu Collection-objektin elementtien läpi kulkemiseen. Java-ohjelmointikielen vanhin iteraattori on Enumeratoria edeltävä Iterator. Java Iterator -käyttöliittymä seuraa enumerator-iteraattoria, jota harjoitettiin alussa käymään läpi joitakin käytettävissä olevia kokoelmia, kuten ArrayLists.

Java Iterator tunnetaan myös nimellä yleinen kohdistin Java, koska se sopii kaikille Collection-kehyksen luokille. Java Iterator auttaa myös toiminnoissa, kuten READ ja REMOVE. Kun vertaamme Java Iterator -liittymää enumeration iterator -liittymään, voimme sanoa, että Java Iteratorissa käytettävissä olevien menetelmien nimet ovat tarkempia ja yksinkertaisempia käyttää.

Java Iteratorin edut

Iterator Javassa tuli hyvin yleiseksi sen lukuisten etujen vuoksi. Java Iteratorin edut esitetään seuraavasti -

  • Käyttäjä voi käyttää näitä iteraattoreita mihin tahansa Collection-kehyksen luokkiin.
  • Java Iteratorissa voimme käyttää sekä luku- että poistotoimintoja.
  • Jos käyttäjä työskentelee for-silmukan kanssa, hän ei voi modernisoida (lisätä/poistaa) kokoelmaa, kun taas, jos hän käyttää Java Iteraattoria, hän voi yksinkertaisesti päivittää kokoelman.
  • Java-iteraattoria pidetään Collection API:n yleiskohdistimena.
  • Java Iteratorin menetelmänimet ovat erittäin helppoja ja helppokäyttöisiä.

Java Iteratorin haitat

Huolimatta lukuisista eduista, Java Iteratorilla on myös useita haittoja. Java Iteratorin haitat on esitetty alla -

  • Java Iterator säilyttää iteroinnin vain eteenpäin. Yksinkertaisesti sanottuna Java Iterator on yksisuuntainen iteraattori.
  • Java Iterator ei hyväksy uuden komponentin korvaamista ja laajentamista.
  • CRUD-operaatioissa Java-iteraattori ei sisällä erilaisia ​​​​toimintoja, kuten CREATE ja UPDATE.
  • Jakajaan verrattuna Java Iterator ei tue elementtien läpikulkua rinnakkaisessa kuviossa, mikä tarkoittaa, että Java Iterator tukee vain peräkkäistä iteraatiota.
  • Spliteratoriin verrattuna Java Iterator ei tue luotettavampaa suoritusta suurien tietomäärien läpikulkua varten.

Kuinka käyttää Java Iteratoria?

Kun käyttäjän on käytettävä Java-iteraattoria, hänen on tehtävä Iterator-rajapinnan ilmentymä objektikokoelmasta, jonka läpi he haluavat kulkea. Tämän jälkeen vastaanotettu Iteraattori ylläpitää taustalla olevan kokoelman komponenttien jäljitystä varmistaakseen, että käyttäjä kulkee objektikokoelman jokaisen elementin yli.

Jos käyttäjä muokkaa taustalla olevaa kokoelmaa kulkiessaan Iteraattorin yli, joka johtaa kyseiseen kokoelmaan, Iteraattori yleensä kuittaa sen ja tekee poikkeuksen seuraavan kerran, kun käyttäjä yrittää saada seuraavan komponentin Iteraattorista.

Java Iterator -menetelmät

Seuraava kuva näyttää täydellisesti Java Iterator -liittymän luokkakaavion. Se sisältää yhteensä neljä menetelmää, jotka ovat:

  • hasNext()
  • Seuraava()
  • Poista()
  • forEachRemaining()

The forEachRemaining() menetelmä lisättiin Java 8:aan. Keskustellaan jokaisesta menetelmästä yksityiskohtaisesti.

    boolean hasNext(): Menetelmä ei hyväksy mitään parametreja. Se palauttaa tosi, jos iteraatiossa on enemmän elementtejä jäljellä. Jos elementtejä ei ole enää jäljellä, se palauttaa epätosi.
    Jos iteraatiossa ei ole enää elementtejä jäljellä, next()-metodia ei tarvitse kutsua. Yksinkertaisesti sanottuna voimme sanoa, että menetelmää käytetään määrittämään, kutsutaanko next()-metodia vai ei.E seuraava():Se on samanlainen kuin hasNext()-menetelmä. Se ei myöskään hyväksy mitään parametreja. Se palauttaa E:n eli läpikulun seuraavan elementin. Jos iteraatiossa tai objektikokoelmassa ei ole enää iteroitavia elementtejä, se heittää NoSuchElementExceptionin.oletus void remove():Tämä menetelmä ei myöskään vaadi parametreja. Tällä menetelmällä ei ole palautustyyppiä. Tämän menetelmän päätehtävä on poistaa taustalla olevan kokoelman läpi kulkevan iteraattorin viimeinen palauttama elementti. Poista () -menetelmää voidaan pyytää tuskin kerran seuraavassa () -menetelmäkutsussa. Jos iteraattori ei tue poistotoimintoa, se heittää UnSupportedOperationExceptionin. Se myös heittää IllegalStateExceptionin, jos seuraavaa menetelmää ei vielä kutsuta.oletusvirhe forEachRemaining (kuluttajan toiminta):Se on Java Iteratorin ainoa menetelmä, joka ottaa parametrin. Se hyväksyy toiminnon parametrina. Toiminta ei ole muuta kuin se on suoritettava. Menetelmällä ei ole palautustyyppiä. Tämä menetelmä suorittaa määritellyn toiminnon kaikille kokoelman vasemmalle osalle, kunnes kaikki komponentit on kulutettu tai toiminto aiheuttaa poikkeuksen. Toiminnan aiheuttamat poikkeukset toimitetaan soittajalle. Jos toiminto on tyhjä, se antaa NullPointerExceptionin.

Esimerkki Java Iteratorista

Nyt on aika suorittaa Java-ohjelma havainnollistamaan Java Iterator -käyttöliittymän etuja. Alla oleva koodi tuottaa ArrayListin kaupunkien nimistä. Sitten alustamme iteraattorin käyttämällä ArrayListin iterator () -menetelmää. Tämän jälkeen luettelo kuljetetaan edustamaan jokaista elementtiä.

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

Lähtö:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Muistettavat kohdat

  • Java Iterator on käyttöliittymä, joka on lisätty Java-ohjelmointikieleen Java 1.2 Collection -kehykseen. Se kuuluu java.util-pakettiin.
  • Se on yksi Java-kursoreista, joita harjoitellaan kokoelmakehyksen objektien läpi kulkemiseen.
  • Java-iteraattoria käytetään kokoelmaobjektin komponenttien iterointiin yksitellen.
  • Java Iterator tunnetaan myös Javan universaalina kursorina, koska se sopii kaikille Collection-kehyksen luokille.
  • Java Iterator tukee myös toimintoja, kuten READ ja REMOVE.
  • Iterator-luokan menetelmänimet ovat erittäin yksinkertaisia ​​ja helppokäyttöisiä verrattuna Enumeration Iteratorin menetelmänimiin.