Iterador Java


Iterador Java

An Iteratoré um objeto que pode ser usado para percorrer coleções, como ArrayList e HashSet . É chamado de "iterador" porque "iterar" é o termo técnico para looping.

Para usar um Iterator, você deve importá-lo do java.utilpacote.


Obtendo um Iterador

O iterator()método pode ser usado para obter um Iteratorpara qualquer coleção:

Exemplo

// Import the ArrayList class and the Iterator class
import java.util.ArrayList;
import java.util.Iterator;

public class Main {
  public static void main(String[] args) {

    // Make a collection
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");

    // Get the iterator
    Iterator<String> it = cars.iterator();

    // Print the first item
    System.out.println(it.next());
  }
}


Percorrendo uma coleção

Para percorrer uma coleção, use os métodos hasNext()e do :next()Iterator

Exemplo

while(it.hasNext()) {
  System.out.println(it.next());
}


Removendo itens de uma coleção

Os iteradores são projetados para alterar facilmente as coleções que percorrem. O remove()método pode remover itens de uma coleção durante o loop.

Exemplo

Use um iterador para remover números menores que 10 de uma coleção:

import java.util.ArrayList;
import java.util.Iterator;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(12);
    numbers.add(8);
    numbers.add(2);
    numbers.add(23);
    Iterator<Integer> it = numbers.iterator();
    while(it.hasNext()) {
      Integer i = it.next();
      if(i < 10) {
        it.remove();
      }
    }
    System.out.println(numbers);
  }
}

Nota: Tentar remover itens usando um loop for ou um loop for-each não funcionaria corretamente porque a coleção está mudando de tamanho ao mesmo tempo em que o código está tentando fazer um loop.