Este artigo descreve a operação da lista de pessoas de acesso com base no modo Iterador de Java. Compartilhe -o para sua referência, como segue:
Uma definição de padrão
O modo iterador fornece um esquema para acessar elementos individuais em um objeto de coleção em sequência sem expor sua representação interna.
Exemplos do segundo modo
1 Análise de padrão
Emprestamos o caso da lista de visitantes para ilustrar esse padrão.
2 diagrama de classe estática no modo iterador
3 exemplos de código
3.1 Interface de informações do pessoal - IPERSON
pacote com.demo.person;/** * Informações do pessoal * * @author * */interface pública iPerson {/** * Obtenha informações de pessoal * * @return */public string getPersonInfo ();}3.2 Implementação de informações do pessoal - Pessoa
pacote com.demo.person;/** * Classe de implementação específica da pessoa * * @Author * */classe pública Pessoa implementa iPerson {// Nome do nome da string privada; // idade privada INT AGE; // Gênero (1: Masculino 0: Feminino) Private Int Sex; / * * this.age = idade; this.sex = sexo; } / ** * Obtenção de informações do pessoal * * @return * / public String getPersonInfo () {return "nome:" + this.name + " - idade:" + this.age + " - gênero:" + (this.sex == 1? "Masculino": (this.sex == 0? "": "")); }}3.3 Interface de coleta de pessoal - IPERSONLIST
pacote com.demo.person; importar com.demo.iterator.iterator;/** * interface de pessoal * * @author * */interface pública iPersonList {/** * Obtenha armazenamento interno de informações de pessoal * * @return */public iPerson [] getPersonList (); / ** * iterator * * @return */ public iterator iterator ();}3.4 PersonList
pacote com.demo.person; importar java.util.random; importar com.demo.iterator.arrPersoniterator; importar com.demo.iterator.iterator;/** * informações do pessoal * * * @author * */public class Iplemments Iplensymslist {// Store Information); // O método de construção inicializa as informações do pessoal public PERSONLIST () {aleatomia Random = new Random (); // Crie informações de pessoal para (int i = 0; i <10; i ++) {iPerson Pessoa = nova pessoa ("pessoa"+i, random.nextint (30), aleatória .nextint (2)); lista [i] = pessoa; // this.list.add (pessoa); }} / ** * Obtenha informações sobre pessoal de armazenamento interno conteúdo * * @return * / public iPerson [] getPersonList () {Lista de retorno; } / ** * iterator * * @return * / public iterator iterator () {return new ArrPersonIterator (this.list); }}3.5 Interface do iterador - iterador
pacote com.demo.iterator;/** * interface do iterador * * @author * */interface pública ITERATOR {// Determine se o próximo nó contém public boolean hasNext (); // Obtenha o próximo objeto Node Object a seguir (); // Exclua o objeto Public Object Remow ();}3.6 Implementação do iterador - Arrperpersoniterator
pacote com.demo.iterator; importar com.demo.person.iperson;/** * Implementação do iterador da matriz * * @Author * */classe pública ArrperpersonIerator implementa o iterador {// atributos privados Store List Informações do objeto Final IPERSON [] PersonList; // O valor inicial das informações de localização de armazenamento é -1 privado int index = -1; / ** * O método do construtor passa o objeto da lista de pessoal em * * @param PERSONLIST */ public ArrpersonIterator (iPerson [] PERSOLLIST) {this.personList = PERSOLLIST; } // Determine se o próximo nó está contido public boolean hasNext () {return (this.personList == null? false: (index <this.personList.length - 1)); } // Obtenha o próximo objeto Node Object Public Next () {if (this.personList! = Null && (index <this.personList.length - 1)) {// Obtenha as informações do pessoal no objeto Lista de pessoal retornar this.personList [++ index]; } retornar nulo; } // Exclua o objeto Public Object Remover () {if (this.personList! = Null) {IPERSON PERS = this.personList [index]; this.personList [index] = null; pessoa de volta; } retornar nulo; }}3.7 Deixe o iterador atravessar o objeto de coleção - cliente
pacote com.demo; importar com.demo.iterator.iterator; importar com.demo.person.iperson; importar com.demo.person.ipersonList; importar com.demo.person.personList; @PARAMG.Demo.person.personlist; IPersonList PersonList = new PersonList (); System.out.println ("-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Tenester Travessia cada elemento e produz informações do pessoal enquanto (iterator.hasnext ()) {// obtém a instância do objeto de pessoal IPERSON PESSOL = (IPERSON) ITERator.Next (); fim..."); }}4 resultados de execução
---- Use o iterador para produzir informações do pessoal do pessoal ...
Nome: Pessoal 0 - Idade: 28 - Gênero: Nome Feminino: Pessoal 1 - Idade: 25 - Sexo: Nome Feminino: Pessoal 2 - Idade: 23 - Gênero: Nome Feminino: Pessoal 3 - Idade: 18 - Gênero: Fêmea Nome: Pessoal 4 - Idade: 27 - Gênero: Gênero: Nome: Pessoal 5 - Idade: 28 Idade: 16 - Sexo: Nome masculino: Pessoal 9 - Idade: 12 - Sexo: Feminino
---- Use o iterador para gerar o fim das informações do pessoal ...
Três princípios de design deste padrão
1 Princípio "aberto e próximo"
2 Princípio de responsabilidade única
Quatro ocasiões de uso
1 Acca o conteúdo de um objeto de coleção sem expor sua representação interna.
2 suporta vários métodos de travessia de objetos de coleta.
3 fornece uma interface unificada para atravessar diferentes estruturas de objetos de coleção.
Diagrama de classes estática do modo de cinco iteradores
For more Java-related content, readers who are interested in this site can view the topics: "Introduction and Advanced Tutorial on Java Object-Oriented Programming", "Tutorial on Java Data Structure and Algorithm", "Summary of Java Operation DOM Node Skills", "Summary of Java File and Directory Operation Skills" and "Summary of Java Cache Operation Skills"
Espero que este artigo seja útil para a programação Java de todos.