Iterator u Javi jedan je od najčešće korištenih kursori u Java Collections Frameworku . Koristi se za prelazak ili iteraciju kroz elemente zbirke jedan po jedan.
- Koristi se za pomicanje elemenata samo u smjeru prema naprijed.
- Uklanja elemente na siguran način tijekom obilaska koristeći remove().
- Iterator je univerzalni pokazivač koji se primjenjuje na sve vrste kolekcija — skup popisa i red čekanja.
Deklaracija iteratora
javno sučelje Iterator
Ovdje E predstavlja tip elemenata koji se ponavljaju.
Stvaranje objekta iteratora
Iterator objekt se stvara pozivanjem metode iterator() na objektu zbirke. Ovdje ćemo upotrijebiti iterator za prelazak i ispis svakog elementa u ArrayList .
veličina teksta od lateksa
JavaKolekcija
imena = novi ArrayList<>();
Iteratoritr = imena.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); } } }
Izlaz
A B C
Hijerarhija iteratora
Iterator je dio java.util paket a implementiraju ga sve klase zbirke putem svojih podsučelja.
Iterator-kursorMetode sučelja iteratora
Sučelje iteratora definira tri metode navedene u nastavku:
- hasNext(): Vraća true ako iteracija ima više elemenata.
- sljedeći(): Vraća sljedeći element u iteraciji. Baca se NoSuchElementException ako nema više elementa.
- ukloniti(): Uklanja zadnji element koji je vratio next(). Ova se metoda može pozvati samo jednom po pozivu next().
Bilješka : metoda remove() može izbaciti dvije iznimke naime kako slijedi:
Interni rad
U ovom odjeljku pokušat ćemo razumjeti kako Java Iterator i njegove metode interno rade. Uzmimo sljedeći objekt LinkedList da bismo razumjeli ovu funkcionalnost.
kako sortirati niz u Javi
Korak 1: Kreirajmo sada Iterator objekt na List objektu kao što je prikazano u nastavku:
Iterator
gradeIterator = grade.iterator();
Iterator 'citiesIteartor' izgledat će ovako:
Korak-1Ovdje kursor iteratora pokazuje ispred prvog elementa liste.
Korak 2: Sada ćemo pokrenuti sljedeći isječak koda.
cityIterator.hasNext();
cityIterator.next();algoritam sortiranja spajanjem
Korak-2Kada pokrenemo gornji isječak koda, kursor iteratora pokazuje na prvi element na popisu kao što je prikazano na gornjem dijagramu.
Korak 3: Sada ćemo pokrenuti sljedeći isječak koda.
cityIterator.hasNext();
cityIterator.next();
Korak-3
Kada pokrenemo gornji isječak koda, kursor iteratora pokazuje na drugi element na popisu kao što je prikazano na gornjem dijagramu.
pd spajanje
Korak 4: Učinite ovaj postupak kako biste dosegli kursor iteratora do završnog elementa popisa.
Korak-4Korak 5: Nakon čitanja posljednjeg elementa, ako pokrenemo donji isječak koda, on vraća lažnu vrijednost.
cityIterator.hasNext();

Budući da pokazivač iteratora pokazuje nakon završnog elementa liste hasNext() metoda vraća lažnu vrijednost.
Bilješka: Java Iterator podržava samo iteraciju u smjeru prema naprijed pa je poznat kao jednosmjerni kursor. Nasuprot tome, ListIterator je dvosmjeran i omogućuje kretanje u oba smjera.
Java iterator: smjer prema naprijedPrimjer: Ovdje ćemo koristiti Iterator za prelazak i uklanjanje neparnih elemenata 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); } }
Izlaz
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]
Obrazloženje: U gornjem primjeru stvaramo ArrayList cijelih brojeva, zatim ga ponavljamo pomoću Iteratora i uklanjamo sve neparne brojeve. Ispisuje popis prije i nakon uklanjanja neparnih elemenata i ispisuje modificirani popis samo s parnim brojevima.