Использование итераторов
Итератор — это объект, который позволяет программисту пробежать по элементам коллекции. «Ну и что?» — скажут некоторые — «Я могу это сделать с помощью обычного цикла!».
Да, действительно, большинство стандартных коллекций из пакета java.util предоставляют возможность выборки элемента по его индексу, вот так:
Но, таким образом, можно поступить далеко не со всеми коллекциями. Возьмём, к примеру Set.
Вот тут то нам и придёт на помощь итератор. Все коллекции из java.util реализуют интерфейс Collection, который, в свою очередь, расширяет интерфейс Iterable. Вот оно, наше решение! В интерфейсе Iterable описан только один метод
Он и возвращает т.н. итератор, т.е. объект, который поочерёдно возвращает все элементы коллекции. Вот так это выглядит в коде
Вот так всё просто. Рассмотрим подробнее методы возвращаемого класса Iterator.
boolean hasNext() — метод возвращает true, если в коллекции ещё остались элементы и false, если достигнут конец коллекции.
E next() — метод возвращает текущий элемент. Т.к. итератор является параметризованным классом, то этот метод нам будет возвращать не Object, а сразу тот тип, который нам нужен.
Вопрос 1.
Зачем нужны итераторы?
Вопрос 2.
Как можно упростить код в последнем примере?
Last updated