Sobes.tech
Назад к вопросам
Junior — Middle
99

Какие методы необходимо реализовать в классе, чтобы его объекты могли использоваться в цикле for-each?

Ответ от нейросети

sobes.tech AI

Чтобы объекты класса можно было использовать в цикле for-each в Java, класс должен реализовывать интерфейс Iterable<T>. Основным методом, который нужно реализовать, является:

Iterator<T> iterator();

Этот метод возвращает объект Iterator, который реализует методы:

  • boolean hasNext() — проверяет, есть ли следующий элемент.
  • T next() — возвращает следующий элемент.

Пример:

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++];
            }
        };
    }
}

// Использование:
// for (String s : new MyCollection()) {
//     System.out.println(s);
// }