logo

Iterátor Java nyelven

Java nyelven egy Iterátor az egyik Java kurzor. Java Iterator egy olyan interfész, amelyet a Java objektum-összetevők gyűjteményének egyenkénti ismétlésére használnak. A Java programozási nyelvben a Java 1.2 Collection keretrendszer óta ingyenesen használható. A java.util csomaghoz tartozik.

Bár a Java Iteratort a Java 1.2-ben vezették be, még mindig nem ez a legrégebbi eszköz a Collection objektum elemeinek áthaladásához. A Java programozási nyelv legrégebbi Iterátora az Enumerator előtti Iterator. A Java Iterator interfész követi az enumerator iteratort, amelyet kezdetben gyakoroltak néhány hozzáférhető gyűjtemény, például az ArrayLists áthaladására.

A Java Iterator néven is ismert univerzális kurzor Java, mivel az a Collection keretrendszer összes osztályához megfelelő. A Java Iterator az olyan műveletekben is segít, mint az OLVASÁS és az ELTÁVOLÍTÁS. Ha összehasonlítjuk a Java Iterator felületet a felsorolási iterátor felülettel, akkor azt mondhatjuk, hogy a Java Iteratorban elérhető metódusok nevei pontosabbak és egyszerűbben használhatók.

A Java Iterator előnyei

Az Iterator a Java nyelven nagyon elterjedtté vált számos előnye miatt. A Java Iterator előnyei a következők:

  • A felhasználó ezeket az iterátorokat a Collection keretrendszer bármelyik osztályára alkalmazhatja.
  • A Java Iteratorban az olvasási és eltávolítási műveleteket egyaránt használhatjuk.
  • Ha egy felhasználó for ciklussal dolgozik, nem tudja modernizálni (hozzáadni/eltávolítani) a gyűjteményt, míg ha a Java Iterátort használja, egyszerűen frissítheti a gyűjteményt.
  • A Java Iterator a Collection API univerzális kurzora.
  • A Java Iterator metódusnevei nagyon egyszerűek és nagyon egyszerűen használhatók.

A Java Iterator hátrányai

Számos előnye ellenére a Java Iteratornak számos hátránya is van. A Java Iterator hátrányait az alábbiakban ismertetjük -

  • A Java Iterator csak az előrefelé irányuló iterációt őrzi meg. Egyszerű szavakkal, a Java Iterator egy egyirányú iterátor.
  • Egy új komponens cseréjét és kiterjesztését a Java Iterator nem hagyja jóvá.
  • A CRUD műveletekben a Java Iterator nem tartalmazza a különféle műveleteket, például a CREATE és az UPDATE.
  • A Spliteratorhoz képest a Java Iterator nem támogatja az elemek bejárását a párhuzamos mintában, ami azt jelenti, hogy a Java Iterator csak a szekvenciális iterációt támogatja.
  • A Spliteratorhoz képest a Java Iterator nem támogatja a megbízhatóbb végrehajtást az adatok tömegének áthaladásához.

Hogyan kell használni a Java Iterator-t?

Ha a felhasználónak a Java Iteratort kell használnia, akkor kötelező elkészítenie az Iterator interfész példányát azon objektumok gyűjteményéből, amelyeken át akar lépni. Ezt követően a fogadott iterátor karbantartja az alapul szolgáló gyűjtemény összetevőinek nyomvonalát, hogy megbizonyosodjon arról, hogy a felhasználó végigjárja az objektumgyűjtemény egyes elemeit.

Ha a felhasználó módosítja a mögöttes gyűjteményt, miközben áthalad egy Iterátoron, amely ahhoz a gyűjteményhez vezet, akkor az Iterátor általában elismeri, és kivételt dob ​​a következő alkalommal, amikor a felhasználó megpróbálja megszerezni a következő összetevőt az Iterátorból.

Java Iterator Methods

A következő ábra tökéletesen mutatja a Java Iterator felület osztálydiagramját. Összesen négy módszert tartalmaz, amelyek a következők:

  • hasNext()
  • következő()
  • eltávolítás()
  • forEachRemaining()

A forEachRemaining() metódus került be a Java 8-ba. Beszéljünk részletesen minden módszerről.

    logikai hasNext(): A metódus nem fogad el semmilyen paramétert. Igaz értéket ad vissza, ha több elem maradt az iterációban. Ha nem marad több elem, akkor false értéket ad vissza.
    Ha nem maradt több elem az iterációban, akkor nem kell meghívni a next() metódust. Egyszerű szavakkal azt mondhatjuk, hogy a metódus segítségével meghatározható, hogy a next() metódust meg kell-e hívni vagy sem.E következő():Hasonló a hasNext() metódushoz. Ezenkívül nem fogad el semmilyen paramétert. E-t, azaz a bejárás következő elemét adja vissza. Ha az iterációnak vagy objektumgyűjteménynek nincs több iterálható eleme, akkor a NoSuchElementException kivételt dobja.alapértelmezett void remove():Ez a módszer szintén nem igényel paramétereket. Ennek a metódusnak nincs visszatérési típusa. Ennek a módszernek az a fő funkciója, hogy eltávolítsa a mögöttes gyűjteményben áthaladó iterátor által visszaadott utolsó elemet. A Remove () metódus alig egyszer kérhető a következő () metódushívás során. Ha az iterátor nem támogatja az eltávolítási műveletet, akkor az UnSupportedOperationException kivételt dobja. Az IllegalStateException kivételt is dobja, ha a következő metódus még nincs meghívva.alapértelmezett érvénytelenség forEachRemaining (fogyasztói művelet):Ez az egyetlen olyan Java Iterator módszer, amely paramétert vesz fel. A műveletet paraméterként fogadja el. A cselekvés nem más, mint amit végre kell hajtani. A metódusnak nincs visszatérési típusa. Ez a metódus a gyűjtemény összes bal oldali összetevőjén végrehajtja a meghatározott műveletet, amíg az összes összetevőt fel nem használták, vagy a művelet kivételt nem tesz. A cselekvés által okozott kivételek a hívóhoz kerülnek. Ha a művelet nulla, akkor NullPointerException-t dob.

Példa a Java Iteratorra

Most itt az ideje, hogy végrehajtsunk egy Java programot, hogy bemutassuk a Java Iterator felület előnyeit. Az alábbi kód a városnevek ArrayListjét állítja elő. Ezután inicializálunk egy iterátort az ArrayList iterator () metódusával. Ezt követően a lista bejárja az egyes elemeket.

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

Kimenet:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Emlékeztető pontok

  • A Java Iterator a Java programozási nyelvhez hozzáadott felület a Java 1.2 Collection keretrendszerben. A java.util csomaghoz tartozik.
  • Ez az egyik Java kurzor, amelyet a gyűjtemény keretrendszerének objektumain való bejárásra gyakorolnak.
  • A Java Iterator a gyűjteményobjektum összetevőinek egyenkénti iterálására szolgál.
  • A Java Iterator a Java univerzális kurzoraként is ismert, mivel a Collection keretrendszer összes osztályához megfelelő.
  • A Java Iterator támogatja a READ és REMOVE műveleteket is.
  • Az Iterator osztály metódusnevei nagyon egyszerűek és könnyen használhatók az Enumeration Iterator metódusneveihez képest.