В этой статье описывается операция списка доступа, основанную на режиме итератора Java. Поделитесь этим для вашей ссылки, следующим образом:
Определение шаблона
Режим итератора обеспечивает схему для доступа к отдельным элементам в объекте сбора в последовательности, не выявляя его внутреннего представления.
Примеры второго режима
1 Анализ шаблона
Мы одолжили случай списка посетителей, чтобы проиллюстрировать этот шаблон.
2 итераторная режим статической классовой диаграммы
3 примеры кода
3.1 Информационный интерфейс персонала - Iperson
пакет com.demo.person;/** * Информация о персонале * * @author * */public interface iperson {/** * Получить информацию о персонале * * @return */public String getPersonInfo ();}3.2 Реализация информации о персонале - человек
Пакет com.demo.person;/** * Class Class Class * * @author * */Public Class реализует Iperson {// имя частной строки имени; // возраст частного возраста; // Пол (1: мужчина 0: Женщина) Частный INT Sex; / ** * Содержимое атрибута метода конструктора * * * @param name * @param age * @param sex */ public (name, int age, int sex) {this.name = name; this.age = возраст; this.sex = sex; } / ** * Получение информации о персонале * * @return * / public String getPersonInfo () {return "name:" + this.name + " - Age:" + this.age + " - пол:" + (this.sex == 1? "Мужчина": (this.sex == 0? ":" "");); }}3.3 Интерфейс сбора персонала - IpersonList
пакет com.demo.person; import com.demo.iterator.iterator;/** * Интерфейс персонала * * @author * */public interface ipersonlist {/** * Получить внутреннее хранилище информационного содержания персонала * * @return */public iperson [] getPersonList (); / ** * Итератор * * @return */ public iterator iterator ();}3.4 PersonList
пакет com.demo.person; import java.util.random; import com.demo.iterator.arrpersoniterator; import com.demo.iterator.iterator;/** * Информация о личности * * @author * */public class personlist реализует ipersonlist {// Магазин информации пользователя Private Private [] list = new Iperson [10]; // Создание метода инициализирует информацию о персонале public personlist () {random random = new random (); // Создать информацию о персонале для (int i = 0; i <10; i ++) {iperson person = new Person ("Person"+i, random.nextint (30), случайный .nextint (2)); список [i] = человек; // this.list.add (человек); }} / ** * Получить информационный контент по внутреннему хранению * * @return * / public iperson [] getPersonList () {return List; } / ** * iterator * * @return * / public iterator iterator () {return new arrpersoniterator (this.list); }}3.5 Интерфейс итератор - итератор
пакет com.demo.iterator;/** * iterator interface * * @author * */public iterator {// определить, содержит ли следующий узел общедоступный логический Hasnext (); // Получить следующий объект узла Public Object Next (); // Удалить объект общедоступный объект remove ();}3.6 Реализация итератора - Arrpersoniterator
Пакет com.demo.iterator; import com.demo.person.iperson;/** * Реализация итератора массива * * @author * *//public class arrpersoniterator реализует итератор {// частные атрибуты Магазин Магазин Список Список объекта // начальное значение информации о местоположении хранилища составляет -1 private int index = -1; / ** * Метод конструктора передает объект списка персонала в * * @param personlist */ public arrpersoniterator (iperson [] personlist) {this.personlist = personlist; } // Определите, содержит ли следующий узел общедоступный логический hasNext () {return (this.personList == null? false: (index <this.personlist.length - 1)); } // Получите следующий объект узла public object next () {if (this.personlist! = Null && (index <this.personlist.length - 1)) {// Получить информацию о персонале в объекте списка персонала возврат this.personlist [++ index]; } return null; } // удалить объект public object remove () {if (this.personList! = Null) {iperson person = this.personlist [index]; this.personlist [index] = null; возвращающийся человек; } return null; }}3.7 Пусть итератор пройдет по объекту сбора - клиент
Пакет com.demo; import com.demo.iterator.iterator; import com.demo.person.iperson; import com.demo.person.ipersonlist; import com.demo.person.personlist; import com.demo.person.personlist; public class client { / ** * @param args * / public void main (string) { / ** * @param args * / publin = new PersonList (); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Каждый элемент и выводит информацию о персонале (iterator.hasnext ()) {// получает экземпляр объекта персонала iperson person = (iperson) iterator.next (); }}4 Результаты работы
---- Используйте итератор для вывода информации о персонале.
Имя: Персонал 0 - Возраст: 28 - Пол: Женский Имя: Персонал 1 - Возраст: 25 - Пол: Женское имя: Персонал 2 - Возраст: 23 - Пол: Женское имя: Персонал 3 - Возраст: 18 - Пол: Женское имя: Персонал 4 - Возраст: 27 - Пол: Женское имя: Персонал 5 - Возраст: 28 - Гендер: Мале. Возраст: 16 - пол: мужское имя: Персонал 9 - Возраст: 12 - пол: Женщина
---- Используйте итератор, чтобы вывести конец информации о персонале ...
Три принципа дизайна этого образца
1 «Открытый и закрытый» принцип
2 Принцип единой ответственности
Четыре случая использования
1ccess содержимое объекта сбора, не обнажая его внутреннего представления.
2 поддерживает множество методов обхода объектов сбора.
3 обеспечивает унифицированный интерфейс для пересечения различных структур объектов сбора.
Статическая классовая диаграмма пять итераторных режима
Для получения дополнительного контента, связанного с Java, читатели, заинтересованные в этом сайте, могут просмотреть темы: «Введение и расширенное учебное пособие по объектно-ориентированному программам Java», «Учебное пособие по структуре данных Java и алгоритм», «Суммарной навыки Java Dom Node», «Суммируют навыки работы навыков операции Java File File и Directory» и «Summary of Java CACEE CACEE».
Я надеюсь, что эта статья будет полезна для всех Java Programming.