Иллюстрированный самоучитель по Java


         

Интерфейс Iterator


В 70—80-х годах прошлого столетия, после того как была осознана важность правильной организации данных в определенную структуру, большое внимание уделялось изучению' и' Построению различных структур данных: связанных списков, очередей, деков, стеков, деревьев, сетей

Вместе c развитием структур данных развивались и алгоритмы работы с ними: сортировка, поиск, обход, хэширование.

Этим вопросам посвящена Обширная литература, посмотрите, например, книгу [11]. '

В 90-х годах было решено заносить данные в определенную коллекцию, скрыв ее внутреннюю структуру, а для работы с данными использовать методы этой коллекции.

В частности, задачу обхода возложили на саму коллекцию. В Java API введен интерфейс

iterator

, описывающий способ обхода всех элементов коллекции. В каждой коллекции есть метод

iterator

(), возвращающий реализацию интерфейса

iterator

для указанной коллекции. Получив эту реализацию, можно обходить коллекцию в некотором порядке, определенном данным итератором, с помощью методов, описанных в интерфейсе

iterator

и реализованных в этом итераторе. Подобная техника использована в классе

StringTokenizer.

В интерфейсе

iterator

описаны всего три метода:

логический метод

hasNext ()

возвращает

true

, если обход еще не завершен;

метод

next

о делает текущим следующий элемент коллекции и возвращает его в виде объекта класса

object

;

метод

remove

о удаляет текущий элемент коллекции.

Можно представить себе дело так, что итератор — это указатель на элемент коллекции. При создании итератора указатель устанавливается перед первым элементом, метод

next

() перемещает указатель на первый элемент и показывает его. Следующее применение метода

next

() перемещает указатель на второй элемент коллекции и показывает его. Последнее применение метода

next

() выводит указатель за последний элемент коллекции.

Метод

remove

(), пожалуй, излишен, он уже не относится к задаче обхода коллекции, но позволяет при просмотре коллекции удалять из нее ненужные элементы.



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий