logo

Iteratorius Java

Java programoje an Iteratorius yra vienas iš „Java“ žymeklių. Java Iteratorius yra sąsaja, kuri praktikuojama siekiant pakartoti visą Java objekto komponentų rinkinį po vieną. Ją galima nemokamai naudoti Java programavimo kalba nuo Java 1.2 Collection sistemos. Jis priklauso java.util paketui.

Nors „Java Iterator“ buvo pristatytas 1.2 versijoje „Java“, jis vis dar nėra seniausias įrankis, leidžiantis pereiti per kolekcijos objekto elementus. Seniausias „Java“ programavimo kalbos „Iterator“ yra „Enumerator“ ankstesnis „Iterator“. „Java Iterator“ sąsaja pakeičia skaitiklio iteratorių, kuris buvo praktikuojamas pradžioje, kad būtų galima pereiti per kai kurias prieinamas kolekcijas, pvz., „ArrayLists“.

„Java Iterator“ taip pat žinomas kaip „ universalus žymeklis Java, nes ji tinka visoms rinkinio sistemos klasėms. „Java Iterator“ taip pat padeda atlikti tokias operacijas kaip READ ir REMOVE. Palyginę „Java Iterator“ sąsają su sąrašo iteratoriaus sąsaja, galime pasakyti, kad „Java Iterator“ prieinamų metodų pavadinimai yra tikslesni ir paprastesni naudoti.

„Java Iterator“ pranašumai

„Iteratorius“ Java programoje tapo labai paplitęs dėl daugybės pranašumų. „Java Iterator“ pranašumai pateikiami taip:

sąrašo pavyzdys java
  • Vartotojas gali pritaikyti šiuos iteratorius bet kuriai kolekcijos sistemos klasei.
  • „Java Iterator“ galime naudoti tiek skaitymo, tiek pašalinimo operacijas.
  • Jei vartotojas dirba su for ciklu, jis negali modernizuoti (pridėti / pašalinti) kolekcijos, o jei naudoja Java Iterator, jis gali tiesiog atnaujinti kolekciją.
  • „Java Iterator“ laikomas universaliu kolekcijos API žymekliu.
  • „Java Iterator“ metodų pavadinimai yra labai paprasti ir juos labai paprasta naudoti.

Java Iterator trūkumai

Nepaisant daugybės privalumų, „Java Iterator“ turi ir įvairių trūkumų. Žemiau pateikiami „Java Iterator“ trūkumai -

  • „Java Iterator“ išsaugo iteraciją tik pirmyn. Paprastais žodžiais tariant, „Java Iterator“ yra vienkryptis iteratorius.
  • „Java Iterator“ nepatvirtina naujo komponento pakeitimo ir išplėtimo.
  • CRUD operacijose „Java Iterator“ neatlieka įvairių operacijų, tokių kaip CREATE ir UPDATE.
  • Palyginti su „Spliterator“, „Java Iterator“ nepalaiko elementų perėjimo lygiagrečiame šablone, o tai reiškia, kad „Java Iterator“ palaiko tik nuoseklią iteraciją.
  • Palyginti su „Spliterator“, „Java Iterator“ nepalaiko patikimesnio vykdymo, kad būtų galima įveikti didžiąją duomenų apimtį.

Kaip naudoti „Java Iterator“?

Kai vartotojui reikia naudoti „Java Iterator“, jis privalo sukurti „Iterator“ sąsajos egzempliorių iš objektų, kuriuos nori pereiti, rinkinio. Po to gautas iteratorius palaiko pagrindinės kolekcijos komponentų seką, kad įsitikintų, jog vartotojas pereis per kiekvieną objektų rinkinio elementą.

Jei vartotojas modifikuoja pagrindinį rinkinį, eidamas per iteratorių, vedantį į tą rinkinį, tada Iteratorius paprastai tai patvirtins ir kitą kartą padarys išimtį, kai vartotojas bandys gauti kitą komponentą iš iteratoriaus.

string.substring java

„Java Iterator“ metodai

Toliau pateiktame paveikslėlyje puikiai parodyta „Java Iterator“ sąsajos klasių diagrama. Jame iš viso yra keturi metodai, kurie yra:

  • hasNext ()
  • Kitas()
  • pašalinti ()
  • forEachRemaining()

The forEachRemaining() metodas buvo įtrauktas į Java 8. Aptarkime kiekvieną metodą išsamiai.

    boolean hasNext(): metodas nepriima jokio parametro. Grąžinama tiesa, jei iteracijoje liko daugiau elementų. Jei elementų nebeliks, jis grąžins false.
    Jei iteracijoje nebeliko elementų, nereikia kviesti next() metodo. Paprastais žodžiais tariant, galime pasakyti, kad metodas naudojamas norint nustatyti, ar reikia iškviesti next() metodą, ar ne.Kitas ():Tai panašu į hasNext() metodą. Jis taip pat nepriima jokių parametrų. Jis grąžina E, t. y. kitą elementą perėjimo metu. Jei iteracija arba objektų rinkinys nebelieka elementų, kuriuos būtų galima kartoti, tada ji pateikia NoSuchElementException.numatytasis galiojimo pašalinimas ():Šis metodas taip pat nereikalauja jokių parametrų. Šio metodo grąžinimo tipo nėra. Pagrindinė šio metodo funkcija yra pašalinti paskutinį elementą, kurį grąžino iteratorius, einantis per pagrindinį rinkinį. Pašalinimo () metodo užklausą galima pateikti vos vieną kartą per kitą () metodo iškvietimą. Jei iteratorius nepalaiko pašalinimo operacijos, jis pateikia UnSupportedOperationException. Ji taip pat išmeta IllegalStateException, jei kitas metodas dar nėra iškviestas.numatytoji negalia forEachRemaining (vartotojo veiksmas):Tai vienintelis „Java Iterator“ metodas, kuris paima parametrą. Jis priima veiksmą kaip parametrą. Veiksmas yra ne kas kita, o tai, ką reikia atlikti. Metodo grąžinimo tipo nėra. Šis metodas atlieka specifinę operaciją su visais kairiaisiais rinkinio komponentais, kol visi komponentai bus sunaudoti arba veiksmas padarys išimtį. Veiksmo padarytos išimtys perduodamos skambinančiajam. Jei veiksmas yra nulinis, jis pateikia NullPointerException.

Java Iterator pavyzdys

Dabar atėjo laikas paleisti Java programą, kad parodytumėte Java Iterator sąsajos pranašumus. Žemiau pateiktas kodas sukuria miestų pavadinimų „ArrayList“. Tada inicijuojame iteratorių, taikydami ArrayList metodą iterator () . Po to sąrašas perkeliamas, kad atspindėtų kiekvieną 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(); } } 

Išvestis:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Taškai, kuriuos reikia prisiminti

  • „Java Iterator“ yra sąsaja, įtraukta į „Java“ programavimo kalbą „Java 1.2 Collection“ sistemoje. Jis priklauso java.util paketui.
  • Tai vienas iš „Java“ žymeklių, praktikuojamų norint pereiti kolekcijos sistemos objektus.
  • „Java Iterator“ naudojamas kolekcijos objekto komponentams po vieną kartoti.
  • „Java Iterator“ taip pat žinomas kaip universalus „Java“ žymeklis, nes jis tinka visoms „Collection“ sistemos klasėms.
  • „Java Iterator“ taip pat palaiko tokias operacijas kaip READ ir REMOVE.
  • „Iterator“ klasės metodų pavadinimai yra labai paprasti ir lengvai naudojami, palyginti su „Enumeration Iterator“ metodų pavadinimais.