Назад к вопросам
Junior
134
questionbank

Что такое интерфейс Iterable в Java?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

Iterable<T> — это интерфейс в Java, который позволяет объектам стать "итерируемыми", то есть по ним можно пройтись с помощью цикла for-each. Он сообщает, что класс, реализующий этот интерфейс, может возвращать Iterator.

Ключевые моменты:

  • Содержит единственный абстрактный метод iterator(), который возвращает объект типа Iterator<T>.
  • Обеспечивает поддержку enhanced for loop (for-each).
  • Является родителем для интерфейса Collection. Все реализации Collection (такие как ArrayList, HashSet, LinkedList) реализуют Iterable и, следовательно, доступны для итерации.

Пример использования:

// Пример класса, реализующего Iterable
import java.util.Iterator;

class MyIterableCollection<T> implements Iterable<T> {
    private T[] items;
    private int size;

    // конструктор и методы добавления...

    @Override
    public Iterator<T> iterator() {
        return new MyIterator();
    }

    // Внутренний класс итератора
    private class MyIterator implements Iterator<T> {
        private int currentIndex = 0;

        @Override
        public boolean hasNext() {
            return currentIndex < size;
        }

        @Override
        public T next() {
            return items[currentIndex++];
        }
    }
}

// Использование в for-each цикле
class Main {
    public static void main(String[] args) {
        MyIterableCollection<String> collection = new MyIterableCollection<>();
        // Добавление элементов...

        for (String item : collection) {
            System.out.println(item); // Можно итерировать благодаря Iterable
        }
    }
}