Este artículo describe la operación de la lista de personas de acceso basada en el modo iterador de Java. Compártelo para su referencia, como sigue:
Una definición de patrón
El modo iterador proporciona un esquema para acceder a elementos individuales en un objeto de recolección en secuencia sin exponer su representación interna.
Ejemplos del segundo modo
1 análisis de patrones
Tomamos prestado el caso de la lista de visitantes para ilustrar este patrón.
2 Diagrama de clase estática en modo iterador
3 ejemplos de código
3.1 Interfaz de información del personal - Iperson
paquete com.demo.person;/** * Información del personal * * @author * */public interfaz iperson {/** * Obtenga información de personal * * @return */public string getpersoninfo ();}3.2 Implementación de la información del personal - Persona
paquete com.demo.person;/** * Clase de implementación específica de persona * * @author * */public class Person implementa iperson {// nombre Nombre de cadena privada; // edad privada int Age; // Género (1: Hombre 0: Mujer) Private Int Sex; / ** * Configuración del método del constructor Contenido de atributo * * @param Nombre * @param Age * @param sex */ pública persona (name de cadena, int en age, int sex) {this.name = name; this.age = edad; this.sex = sexo; } / ** * Obtener información del personal * * @return * / public String getPersonInfo () {return "Nombre:" + this.name + " - edad:" + this.age + " - género:" + (this.sex == 1? "Masculino": (this.sex == 0? "Femenino": "")); }}3.3 Interfaz de recolección de personal - IpersonList
paquete com.demo.person; import com.demo.iterator.iterator;/** * Interfaz de personal * * @author * */public interfaz ipersonList {/** * Obtener almacenamiento interno de contenido de información del personal * * @return */public iperson [] getPersonList (); / ** * iterador * * @return */ public Iterator Iterator ();}3.4 Lista de personas
paquete com.demo.person; import java.util.random; import com.demo.iterator.arrpersoniterator; import com.demo.iterator.iterator;/** * Personlist Information * * @author * */public class Personlist implementa ipersonlist {// Lista de información del usuario de la tienda IPerson IPerson final [] Lista = Nueva iperson [10]; // El método de construcción inicializa la información del personal Public PersonList () {Random Random = new Random (); // crear información de personal para (int i = 0; i <10; i ++) {iperson persona = nueva persona ("persona"+i, random.nextint (30), aleator. lista [i] = persona; // this.list.add (persona); }} / ** * Obtenga contenido de información del personal de almacenamiento interno * * @return * / public IPerson [] getpersonlist () {return List; } / ** * iterator * * @return * / public Iterator Iterator () {return New ArrpersonIterator (this.list); }}3.5 interfaz iterador - iterador
paquete com.demo.iterator;/** * Interfaz iterator * * @author * */public interface iterator {// Determine si el siguiente nodo contiene pública boolean hasNext (); // Obtenga el siguiente objeto de objeto de nodo Next (); // Eliminar el objeto Public Object Remete ();}3.6 Implementación del iterador - Arrpersoniterator
paquete com.demo.iterator; import com.demo.person.iperson;/** * Implementación de iterador de matriz * * @author * */public class Arrpersoniterator Implementa Iterator {// Atributos privados Almacenamiento Lista de personal Información Objeto de objeto Privado Final Final Iperson [] Personlist; // El valor inicial de la información de ubicación de almacenamiento es -1 private int index = -1; / ** * El método del constructor pasa el objeto de lista de personal en * * @param personlist */ public ArrpersonIterator (iperson [] PersonList) {this.personList = PersonList; } // Determinar si el siguiente nodo está contenido público boolean hasNext () {return (this.personList == null? false: (index <this.personlist.length - 1)); } // Obtenga el siguiente objeto de objeto de nodo Next () {if (this.personlist! = Null && (index <this.personlist.length - 1)) {// Obtenga la información del personal en el objeto de la lista de personal devolver esto.personlist [++ index]; } return null; } // Eliminar el objeto Public Object Remete () {if (this.personlist! = Null) {iperson persona = this.personlist [index]; this.personList [index] = null; persona de regreso; } return null; }}3.7 Deje que el iterador atraviese el objeto de recolección - Cliente
paquete 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; Cliente de clase pública { / ** * @param args * / public static void (string [] args) IpersonList PersonList = new PersonList (); System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Pantal. atraviesa cada elemento y emite información del personal mientras (iterator.hasnext ()) {// obtiene la instancia de objeto de personal iperson persona = (iperson) iterator.next () fin..."); }}4 Resultados de ejecución
---- Use el iterador para generar información sobre la información del personal ...
Nombre: Personal 0 - Edad: 28 - Género: Femenino Nombre: Personal 1 - Edad: 25 - Género: Femenino Nombre: Personal 2 - Edad: 23 - Género: Femenino Nombre: Personal 3 - Edad: 18 - Género: Género Nombre: Personal 4 - Edad: 27 - Género: Nombre de la mujer: Personal 5 - Edad: 28 - Género Género: Personal 6 - edad: 25 - Género: Género: Nombre de la mujer 7 - Edad 23 - 23 - 23 Edad: 16 - Género: Nombre masculino: Personal 9 - Edad: 12 - Género: Mujer
---- Use el iterador para obtener el final de la información del personal ...
Tres principios de diseño de este patrón
Principio de 1 "abierto y cerrado"
2 Principio de responsabilidad única
Cuatro ocasiones de uso
1 Accesorio el contenido de un objeto de recolección sin exponer su representación interna.
2 admite múltiples métodos de recorrido de objetos de recolección.
3 proporciona una interfaz unificada para atravesar diferentes estructuras de objetos de recolección.
Diagrama de clase estática de cinco en modo iterador
Para obtener más contenido relacionado con Java, los lectores interesados en este sitio pueden ver los temas: "Introducción y tutorial avanzado sobre la programación orientada a objetos de Java", "Tutorial sobre la estructura de datos de Java y el algoritmo", "Resumen de la operación de Java DOM Node Node", "Summary of Java File and Directory Operation Skilly" y "Summary of Java Cache Skitch" Habilidades "
Espero que este artículo sea útil para la programación Java de todos.