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.
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