Sobes.tech
Junior — Middle

Que métodos devem ser implementados na classe para que seus objetos possam ser usados em um ciclo for-each?

sobes.tech IA

Resposta da IA

Para que os objetos de uma classe possam ser utilizados num ciclo for-each em Java, a classe deve implementar a interface Iterable<T>. O método principal que deve ser implementado é:

Iterator<T> iterator();

Este método devolve um objeto Iterator, que implementa os métodos:

  • boolean hasNext() — verifica se há um elemento seguinte.
  • T next() — devolve o elemento seguinte.

Exemplo:

import java.util.Iterator;

public class MyCollection implements Iterable<String> {
    private String[] data = {"a", "b", "c"};

    @Override
    public Iterator<String> iterator() {
        return new Iterator<String>() {
            private int index = 0;

            @Override
            public boolean hasNext() {
                return index < data.length;
            }

            @Override
            public String next() {
                return data[index++];
            }
        };
    }
}

// Utilização:
// for (String s : new MyCollection()) {
//     System.out.println(s);
// }