Iterator v Javi je eden najpogosteje uporabljenih kazalke v ogrodju zbirk Java . Uporablja se za prečkanje ali ponavljanje elementov zbirke enega za drugim.
- Uporablja se za premikanje elementov samo v smeri naprej.
- Varno odstrani elemente med prečkanjem s funkcijo remove().
- Iterator je univerzalni kazalec, ki se uporablja za vse vrste zbirk — seznam in čakalna vrsta.
Deklaracija iteratorja
Iterator javnega vmesnika
Tukaj E predstavlja vrsto elementov, ki jih je treba ponoviti.
Izdelava objekta iteratorja
Objekt Iterator se ustvari s klicem metode iterator() na objektu zbirke. Tukaj bomo uporabili iterator za prehod in tiskanje vsakega elementa v ArrayList .
JavaZbirka
imena = nov ArrayList<>();
Iteratoritr = names.iterator(); obratni niz v Javi
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); } } }
Izhod
A B C
Hierarhija Iteratorja
Iterator je del paket java.util izvajajo pa ga vsi razredi zbirke prek svojih podvmesnikov.
Iterator-kurzorMetode vmesnika iteratorja
Vmesnik iteratorja definira tri spodaj navedene metode:
- hasNext(): Vrne true, če ima ponovitev več elementov.
- naslednji(): Vrne naslednji element v ponovitvi. Vrže NoSuchElementException če ni prisotnega več elementa.
- odstrani(): Odstrani zadnji element, ki ga vrne next(). To metodo lahko pokličete samo enkrat na klic next().
Opomba : metoda remove() lahko povzroči dve izjemi, in sicer kot sledi:
Notranje delo
V tem razdelku bomo poskušali razumeti, kako Java Iterator in njegove metode delujejo interno. Za razumevanje te funkcije vzemimo naslednji objekt LinkedList.
1. korak: Zdaj pa ustvarimo objekt Iterator na objektu List, kot je prikazano spodaj:
Iterator
placesIterator = mesta.iterator();
Iterator 'citiesIteartor' bo videti takole:
nfa v dfa
1. korakTukaj iteratorjev kazalec kaže pred prvim elementom seznama.
2. korak: Zdaj bomo zagnali naslednji delček kode.
cityIterator.hasNext();
cityIterator.next();
2. korakKo zaženemo zgornji delček kode, kazalec iteratorja kaže na prvi element na seznamu, kot je prikazano v zgornjem diagramu.
python __dict__
3. korak: Zdaj bomo zagnali naslednji delček kode.
cityIterator.hasNext();
cityIterator.next();
3. korak
Ko zaženemo zgornji delček kode, kazalec Iteratorja kaže na drugi element na seznamu, kot je prikazano v zgornjem diagramu.
neskončna zanka
4. korak: Izvedite ta postopek, da dosežete kazalec iteratorja do končnega elementa seznama.
4. korak5. korak: Ko preberemo končni element, če zaženemo spodnji delček kode, ta vrne napačno vrednost.
cityIterator.hasNext();

Ker kazalec iteratorja kaže na za končnim elementom seznama hasNext() metoda vrne napačno vrednost.
Opomba: Java Iterator podpira samo iteracijo v smeri naprej, zato je znan kot enosmerni kazalec. V nasprotju s tem je ListIterator dvosmeren in omogoča prečkanje v obe smeri.
Java Iterator: smer naprejprimer: Tukaj bomo uporabili Iterator za prečkanje in odstranjevanje lihih elementov iz ArrayList.
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); } }
Izhod
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]
Pojasnilo: V zgornjem primeru ustvarimo ArrayList celih števil, nato ga ponovimo z uporabo Iteratorja in odstranimo vsa liha števila. Natisne seznam pred in po odstranitvi lihih elementov in natisne spremenjen seznam samo s sodimi številkami.