Un iterator în Java este unul dintre cele mai frecvent utilizate cursoare în cadrul Java Collections Framework . Este folosit pentru a parcurge sau itera elementele unei colecții unul câte unul.
- Este folosit pentru a traversa elemente numai în direcția înainte.
- Îndepărtează elementele în siguranță în timpul traversării folosind remove().
- Iteratorul este un cursor universal care se aplică tuturor tipurilor de colecții — List Set și Queue.
Declarația Iteratorului
Iterator de interfață publică
Aici E reprezintă tipul de elemente care trebuie iterate.
Crearea obiectului Iterator
Un obiect Iterator este creat prin apelarea metodei iterator() pe un obiect de colecție. Aici vom folosi un Iterator pentru a parcurge și imprima fiecare element dintr-un ArrayList .
JavaColectare
nume = new ArrayList<>();
Iteratoritr = nume.iterator(); sortare listă java
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); } } }
Ieșire
A B C
Ierarhia Iteratorului
Iteratorul face parte din pachetul java.util și este implementat de toate clasele de colecție prin subinterfețele lor.
Iterator-cursorMetode de interfață iterator
Interfața iteratorului definește trei metode, după cum sunt enumerate mai jos:
- areNext(): Returnează adevărat dacă iterația are mai multe elemente.
- Următorul(): Returnează următorul element din iterație. Aruncă NoSuchElementException dacă nu mai este prezent niciun element.
- elimina(): Îndepărtează ultimul element returnat de next(). Această metodă poate fi apelată o singură dată pe apel la next().
Nota : metoda remove() poate arunca două excepții și anume după cum urmează:
Lucrul intern
În această secțiune vom încerca să înțelegem cum funcționează intern Java Iterator și metodele sale. Să luăm următorul obiect LinkedList pentru a înțelege această funcționalitate.
arhitectura von neumann
Pasul 1: Acum să creăm un obiect Iterator pe obiectul Listă, așa cum se arată mai jos:
Iterator
citiesIterator = citys.iterator();
Iteratorul „citiesIteartor” va arăta mai jos:
Pasul-1Aici Cursorul lui Iterator indică înaintea primului element al Listei.
Pasul 2: Acum vom rula următorul fragment de cod.
formatarea șirurilor de caractere java
citysIterator.hasNext();
citysIterator.next();
Pasul-2Când rulăm fragmentul de cod de mai sus, Cursorul lui Iterator indică primul element din listă, așa cum se arată în diagrama de mai sus.
Pasul 3: Acum vom rula următorul fragment de cod.
citysIterator.hasNext();
citysIterator.next();pd merge
Pasul-3
Când rulăm fragmentul de cod de mai sus, Cursorul lui Iterator indică al doilea element din listă, așa cum se arată în diagrama de mai sus.
Pasul 4: Faceți acest proces pentru a ajunge la Cursorul Iteratorului la elementul final al Listei.
Pasul-4Pasul 5: După citirea elementului final, dacă rulăm fragmentul de cod de mai jos, returnează o valoare falsă.
citysIterator.hasNext();

Pe măsură ce cursorul lui Iterator indică după elementul final al listei areNext() metoda returnează o valoare falsă.
Nota: Java Iterator acceptă numai iterația direcției înainte, așa că este cunoscut ca un cursor unidirecțional. În schimb, ListIterator este bidirecțional, permițând traversarea în ambele direcții.
Iterator Java: direcția înainteExemplu: Aici vom folosi un Iterator pentru a parcurge și elimina elemente ciudate dintr-o ArrayList.
jbuttonJava
import 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); } }
Ieșire
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]
Explicaţie: În exemplul de mai sus, creăm o ArrayList de numere întregi, apoi o iterăm folosind un Iterator și eliminăm toate numerele impare. Tipărește lista înainte și după eliminarea elementelor impare și tipărește lista modificată doar cu numere pare.