Mi az Iterator a Java-ban és hogyan kell használni?

Az Iterator a Java blogban néhány példával bemutatja, hogy mi az iterátor, és hogyan kell ezeket használni a Java-ban

Ha azon dolgozik, hogy a és azt mondod, hogy szekvenciát szeretnél kinyomtatni, ott jön a képbe a Java Iterator. Így megkapja a sorrendet anélkül, hogy hozzáadná az egyes sorok nyomtatási utasítását. Tehát, tanuljunk az Iteratorról .



Az alábbiakban bemutatom azokat a témákat, amelyekkel ebben a modulban foglalkozom:



Lássunk neki!

Mi az iterátor?

A Java elsősorban négy különböző kurzort támogat. Ezek a következők:



  • Felsorolás
  • Iterátor
  • ListIterator
  • Hasító

Ezen Java kurzorok mindegyikének vannak bizonyos előnyei és hátrányai. Ebben a cikkben az Iteratorra fogunk koncentrálni.

java sekély másolat vs mély másolat

Mi az iterátor a Java-ban?

Iterátor egy interfész, amely egy gyűjtemény keretrendszerhez tartozik. Lehetővé teszi a gyűjtemény bejárását, az adatelem elérését és a gyűjtemény adatelemeinek eltávolítását.



Univerzális iterátornak is tekinthető, mivel bármelyikre alkalmazhatja tárgy. Az Iterator használatával mind olvasási, mind eltávolítási műveleteket elvégezhet. Ez a továbbfejlesztett változata Felsorolás az elem eltávolíthatóságának további funkcióival.

Java Iterator módszerek

A Java iterator összesen 4 módszerrel rendelkezik. Értsük meg őket részletesen.

hogyan használjuk a szemaforokat a java-ban
MódLeírás
forEachRemaining (Consumeraction)Az egyes elemek műveleteit addig hajtja végre, amíg az összes elem feldolgozásra nem kerül. Addig is, amíg kivételt nem dob az akció.
hasNext ()Ez visszatér igaz érték, ha az iteráció során nagy számú elem találkozik.
következő()Ez visszatér a következő megadott elem az iteráció során.
eltávolítás ()Ez a módszer reltávolítja az aktuális elemet. Dobások IllegalStateException ha megpróbálják felhívni az remove () hívását, amelyet nem előz meg a következő () hívása.
logikai hasHext ()Ez akkor tér vissza igazra, ha az iterációnak több eleme van.

Példa:

class Módszer {public static void main (String [] args) ArrayList list = new ArrayList () list.add ('E') list.add ('D') list.add ('U') list.add ('R ') list.add (' E ') list.add (' K ') list.add (' A ') // Iterátor a lista áthaladásához Iterator iterator = list.iterator () System.out.println (' Lista elemek : ') while (iterator.hasNext ()) System.out.print (iterator.next () +' ') System.out.println ()}}

Kimenet: EDUREKA

Vessünk egy pillantást a Java Java ListIteratorra.

ListIterator Java-ban

ListIterator A Java egy Iterator, amely lehetővé teszi a felhasználók számára, hogy mindkét irányban haladhassanak a Gyűjteményen. A következő módszereket tartalmazza:

MódMódszer és leírás
void add (Object obj) Az objektumot beszúrja az elem elé a listába, amelyet a következő () következő hívás ad vissza.
logikai hasHext () Igaz értéket ad vissza, ha van a következő elem. Ellenkező esetben hamis értéket ad vissza.
logikai hasPrevious () Igaz értéket ad vissza, ha van előző elem. Ellenkező esetben hamis értéket ad vissza.
Következő objektum () Visszaadja a következő elemet. A NoSuchElementException dobódik, ha nincs a következő elem.
int nextIndex () Visszaadja a következő elem indexét. Ha nincs a következő elem, akkor a lista méretét adja vissza.
Objektum előző () Visszaadja az előző elemet. A NoSuchElementException dobódik, ha nincs előző elem.
int előzőIndex () Visszaadja az előző elem indexét. Ha nincs előző elem, akkor -1-et ad vissza.
érvénytelen eltávolítás () Eltávolítja az aktuális elemet a listáról. Az IllegalStateException akkor kerül dobásra, ha az eltávolítás () a következő () előtt meghívásra kerül, vagy az előző () meghívásra kerül.
void set (Object obj) Obj-t rendel az aktuális elemhez. Ez az az elem, amelyet legutóbb egy következő () vagy előző () hívás adott vissza.

Példa:

public class Lists {public static void main (String args []) {// tömblista létrehozása ArrayList al = new ArrayList () // elemek hozzáadása az al.add ('E') al.add ('D' tömblistához ') al.add (' U ') al.add (' R ') al.add (' E ') al.add (' K ') al.add (' A ') // Az iterátor segítségével jelenítse meg al System.out.print ('Az al: eredeti tartalma') Iterator itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '' )} System.out.println () // Az iterálandó objektumok módosítása ListIterator litr = al.listIterator () while (litr.hasNext ()) {Object element = litr.next () litr.set (element + '+') } System.out.print ('Az al módosított tartalma') itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '') } System.out.println () // Most jelenítse meg a listát visszafelé System.out.print ('Módosított lista visszafelé:'), míg (litr.hasPrevious ()) {Object element = litr.previous () System.out. print (elem + '')} System.out.println ()}}

Kimenet:

Eredetitartalma al:E D U R E K A
Módosítotttartalma al:IS+D+U+R+IS+NAK NEK+ A +
Módosítottlistázza visszafelé:NAK NEK+NAK NEK+IS+R+U+D+ ÉS +

Most nézzük meg ennek az iterátor felületnek a Java előnyeit és korlátait.

Az Iterator előnyei a Java-ban

A Java Iteratornak a következő előnyei vannak.

  • Ezeket az iterátorokat bármely Gyűjtemény osztályhoz használhatja.
  • A Java Iterator mindkettőt támogatja olvas szintén eltávolítani tevékenységek.
  • Ha használja hurokhoz nem tudsz frissítse (adja hozzá / távolítsa el) a Gyűjteményt, míg egy iterátor segítségével egyszerűen frissítheti a Gyűjteményt.
  • Ez egy univerzális kurzor a Collection API számára.
  • A metódusnevek nagyon egyszerűek és nagyon egyszerűen használhatók.

Az Iterator korlátai a Java-ban

A Java-s iterátoroknak a következő hátrányai vannak:

  • Csak az előre irányú iterációt hajthatja végre, ez az egyirányú iterátor.
  • Az Iterator nem támogatja az új elem cseréjét és hozzáadását.
  • A ListIterator a legerősebb iterátor, de csak a List által megvalósított osztályokra vonatkozik. Tehát nem univerzális iterátor.
  • A CRUD műveletek használata nem támogatja a létrehozási és frissítési műveleteket.
  • Ha összehasonlítja a Spliteratorral, akkor nem hagyja párhuzamosan iterálni az elemeket. Ez azt jelenti, hogy csak a szekvenciális iterációt támogatja.
  • Nem támogatja a jobb teljesítményt nagy mennyiségű adat ismétléséhez.

Ezzel eljutottunk a cikk végéhez, ahol megtudhattuk, hogyan működik az iterátor a Java-ban. Remélem, hogy tisztában van azzal, amit megosztott veled ebben az oktatóanyagban.

a java-ban változtatható és megváltoztathatatlan

Ha relevánsnak találta ezt a cikket az „Iterator in Java” témáról, nézze meg a egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóból álló hálózata van az egész világon.

Azért vagyunk itt, hogy segítséget nyújthassunk utazásának minden lépésében, ezen felül előállítunk egy tananyagot, amelyet olyan hallgatók és szakemberek számára tervezünk, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Java programozásban, és képezze mind az alapvető, mind a fejlett Java koncepciókhoz, valamint a különböző Java keretrendszerekhez, például a Hibernate & Spring.

Ha bármilyen kérdése merülne fel, nyugodtan tegye fel minden kérdését az „Iterator in Java” megjegyzés rovatban, és csapatunk örömmel válaszol.