Sobes.tech
Back to questions
Junior — Middle
65

Возможно ли использовать собственный объект в цикле for-each как элемент итерации?

Answer from AI

sobes.tech AI

Да, собственный объект можно использовать в цикле for-each, если он реализует интерфейс Iterable или является массивом.

Для этого класс должен реализовать метод iterator(), возвращающий объект типа Iterator. Например:

import java.util.Iterator;

class MyCollection implements Iterable<String> {
    private String[] data = {"one", "two", "three"};

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

public class Main {
    public static void main(String[] args) {
        MyCollection collection = new MyCollection();
        for (String item : collection) {
            System.out.println(item);
        }
    }
}

В этом примере MyCollection можно использовать в for-each, так как он реализует Iterable.