Iterador personalizado em Java

Haider Ali 12 outubro 2023
Iterador personalizado em Java

Neste guia, aprenderemos como fazer um iterador customizado em Java. Um iterador em Java é uma ferramenta muito útil. Você pode considerá-lo como uma alternativa ao loop foreach. Um iterador apresenta algumas funções que auxiliam os desenvolvedores na atualização de uma coleção bem definida. Vamos ver como podemos fazer um iterador customizado em Java.

Saiba mais sobre iteradores em Java aqui.

Iterador personalizado em Java

Um iterador customizado em Java pode ajudar os desenvolvedores a resolver problemas que apresentam algumas estruturas de dados complexas. Basicamente, você pega uma classe que implementa iterador e sobrescreve seus aspectos. Por exemplo, você pode substituir suas funções com suas próprias instruções, como hasNext(), next() e remove(). Dê uma olhada no código a seguir.

import java.util.Iterator; // Iterator Import
class CustomList<Type> implements Iterable<Type> {
  private Type[] arrayList;
  private int Size;
  public CustomList(Type[] newArray) { // Constructor Which Accepts Array...
    this.arrayList = newArray;
    this.Size = arrayList.length;
  }
  @Override
  public Iterator<Type> iterator() {
    // OverRiding Default List Iterator //
    Iterator<Type> it = new Iterator<Type>() {
      private int currentIndex = 0;
      @Override
      public boolean hasNext() {
        // OverRiding Default hasNext  Method//
        return currentIndex < Size && arrayList[currentIndex] != null;
      }
      @Override
      public Type next() {
        // OverRiding Default next  Method//
        return arrayList[currentIndex++];
      }
      @Override
      public void remove() {
        // OverRiding Default Remove  Method.
        throw new UnsupportedOperationException();
      }
    };
    return it;
  }
}
public class Main {
  public static void main(String args[]) {
    String[] data = new String[] {"Tim Cook", "Mark Zuckerberg", "Elon Musk", "Jeff Bezos"};
    CustomList<String> Listt = new CustomList<String>(data);
    // creating a CustomList Object Which OverRides.
    // The Iterator and Use The Custom Iterator Which is Defined in The Code.
    Iterator temp = Listt.iterator(); // getting Custom iterator from List.
    while (temp.hasNext()) { // custom hasNext() Method
      String value = temp.next().toString(); // Custom Method Return The Current Index
      System.out.print(value + ", ");
    }
  }
}

Resultado:

Tim Cook, Mark Zuckerberg, Elon Musk, Jeff Bezos,

No exemplo de código acima, estamos criando um iterador personalizado em Java. Primeiro, fizemos uma ArrayList e atribuímos a ela um tamanho. Usando o construtor, atribuímos valores a ambas as variáveis. Fizemos uma função chamada iterator() de Iterator<Type>. Dentro desta função, todas as funções em um iterador podem ser substituídas.

Na função principal, estamos simplesmente fazendo uma lista, obtendo um iterador personalizado a partir dela e armazenando-a em temp. É assim que criamos um iterador personalizado em Java. Não fizemos alterações durante a substituição, mas você pode personalizar seu iterador como quiser usando desta forma.

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn