A Java Iterator az egyik leggyakrabban használt kurzorok a Java Collections Frameworkben . Egy gyűjtemény elemeinek egyenkénti bejárására vagy iterálására szolgál.
- Csak előrefelé mozgatható elemek.
- Biztonságosan eltávolítja az elemeket a bejárás során a remove() segítségével.
- Az Iterator egy univerzális kurzor, amely minden gyűjteménytípusra vonatkozik - List Set és Queue.
Az Iterátor nyilatkozata
nyilvános felület Iterátor
Itt E az iterálandó elemek típusát jelöli.
Iterátor objektum létrehozása
Az Iterator objektum az iterator() metódus meghívásával jön létre egy gyűjteményes objektumon. Itt egy Iterátort fogunk használni az egyes elemek bejárására és kinyomtatására ArrayList .
JavaGyűjtemény
nevek = új ArrayList<>();
Iterátoritr = nevek.iterator();
import java.util.ArrayList; import java.util.Iterator; public class Geeks { public static void main(String[] args) { // Create an ArrayList and add some elements ArrayList<String> al = new ArrayList<>(); al.add('A'); al.add('B'); al.add('C'); // Obtain an iterator for the ArrayList Iterator<String> it = al.iterator(); // Iterate through the elements and print each one while (it.hasNext()) { // Get the next element String n = it.next(); System.out.println(n); } } }
Kimenet
A B C
Az Iterátor hierarchiája
Az Iterátor része a java.util csomag és az összes gyűjteményosztály megvalósítja az alinterfészein keresztül.
Iterátor-kurzorAz iterátor interfész módszerei
Az iterátor felület három módszert határoz meg az alábbiak szerint:
- hasNext(): Igaz értéket ad vissza, ha az iteráció több elemet tartalmaz.
- következő(): Az iteráció következő elemét adja vissza. Ez dob NoSuchElementException ha nincs több elem.
- eltávolítás(): Eltávolítja a next() által visszaadott utolsó elemet. Ez a metódus a next() hívásonként csak egyszer hívható meg.
Jegyzet : a remove() metódus két kivételt vethet ki, mégpedig a következők szerint:
shell fajta
Belső munkavégzés
Ebben a részben megpróbáljuk megérteni a Java Iterator és módszerei belső működését. Vegyük a következő LinkedList objektumot a funkció megértéséhez.
1. lépés: Most hozzunk létre egy Iterator objektumot a List objektumban az alábbiak szerint:
Iterátor
városokIterátor = városok.iterátor();
A "citiesIteartor" iterátor az alábbiak szerint fog kinézni:
1. lépésItt az Iterátor kurzora a lista első eleme előtt mutat.
2. lépés: Most a következő kódrészletet fogjuk futtatni.
cityIterator.hasNext();
cityIterator.next();
2. lépésA fenti kódrészlet futtatásakor az Iterator kurzora a lista első elemére mutat, ahogy a fenti diagramon látható.
3. lépés: Most a következő kódrészletet fogjuk futtatni.
cityIterator.hasNext();
cityIterator.next();
3. lépés
Amikor a fenti kódrészletet futtatjuk, az Iterator kurzora a lista második elemére mutat, amint az a fenti diagramon látható.
4. lépés: Hajtsa végre ezt a folyamatot, hogy elérje az iterátor kurzorát a lista végeleméhez.
4. lépés5. lépés: Az utolsó elem beolvasása után, ha futtatjuk az alábbi kódrészletet, hamis értéket ad vissza.
hogyan lehet aktuális dátumot lekérni java-ban
cityIterator.hasNext();

Ahogy az Iterátor kurzora a Lista utolsó eleme utáni elemre mutat hasNext() metódus hamis értéket ad vissza.
Jegyzet: A Java Iterator csak az előre irányú iterációt támogatja, ezért egyirányú kurzorként ismert. Ezzel szemben a ListIterator kétirányú, lehetővé téve a bejárást mindkét irányban.
Java Iterator: előre irányPélda: Itt egy Iterátort fogunk használni az ArrayList páratlan elemeinek bejárására és eltávolítására.
Javaimport java.util.ArrayList; import java.util.Iterator; public class Geeks { public static void main(String[] args) { // Creating an ArrayList of Integer type ArrayList<Integer> al = new ArrayList<>(); // Adding elements to the ArrayList for (int i = 0; i < 10; i++) { al.add(i); } // Printing the original list System.out.println('Original List: ' + al); // Creating an Iterator for the ArrayList Iterator<Integer> itr = al.iterator(); // Iterating through the list and removing odd elements while (itr.hasNext()) { // Getting the next element int i = itr.next(); System.out.print(i + ' '); // Removing odd elements if (i % 2 != 0) { itr.remove(); } } System.out.println(); // Printing the modified list after removal of odd elements System.out.println('Modified List: ' + al); } }
Kimenet
Original List: [0 1 2 3 4 5 6 7 8 9] 0 1 2 3 4 5 6 7 8 9 Modified List: [0 2 4 6 8]
Magyarázat: A fenti példában egész számokból hozunk létre egy ArrayList listát, majd egy Iterátor segítségével iteráljuk végig, és eltávolítjuk az összes páratlan számot. Kinyomtatja a listát a páratlan elemek eltávolítása előtt és után, és a módosított listát csak páros számokkal írja ki.