Материал: 8 - Презентация

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Центрдистанционногообучения

Для чего нужен Iterable?

•Для обеспечения возможности работы ваших классов или

объектов в выражении for/in необходимо реализовать интерфейс Iterable.

•Есть два основных сценария:

üРасширить существующий класс коллекции, который уже реализует интерфейс Iterable (и, следовательно, уже поддерживает for/in).

üУправлять итерацией вручную, определив свою собственную реализацию Iterable.

online.mirea.ru

Центрдистанционногообучения

• Интерфейстребует, чтобыIterableкаждый класс, который его реализует реализовывал метод – итератор

•Интерфейс Collection расширяет интерфейс Iterable, таким образом, что все классы, которые реализуют интерфейс List (подинтерфейс Collection) обязаны представить реализацию итератора в виде метода

•

public interface Iterable<T> { public Iterator<T> iterator();

}

online.mirea.ru

Центрдистанционногообучения

УдобноИнтерфейсиспользовать дляIterableсвоих собственных классов коллекций использовать цикл for/in.

Чтобы сделать это, ваш класс должен реализовывать интерфейс java.lang.Iterable <E>.

Простой пример:

public class MyCollection<E> implements Iterable<E>{

public Iterator<E> iterator() { return new MyIterator<E>();

}

}

online.mirea.ru

Центрдистанционногообучения

Интерфейс Iterable

Соответствующая реализация скелета класса MyIterator:

public class MyIterator <T> implements Iterator<T> { public boolean hasNext() {

//реализация.

}

public T next() { //реализация...;

}

public void remove() { //реализация...если поддерживается.

public}} static void main(String[] args) {

MyCollection<String> stringCollection = new MyCollection<String>();

for(String string : stringCollection){

 

}

online.mirea.ru

}

Центрдистанционногообучения

Реализация двусвязного списка

mirea.ru

Источник: https://studfile.net/preview/16403817/