Cet article décrit l'opération de liste des personnes d'accès en fonction du mode itérateur de Java. Partagez-le pour votre référence, comme suit:
Une définition de modèle
Le mode Iterator fournit un schéma pour accéder aux éléments individuels dans un objet de collecte en séquence sans exposer sa représentation interne.
Exemples du deuxième mode
1 analyse de modèle
Nous empruntons le cas de la liste des visiteurs pour illustrer ce modèle.
2 Diagramme de classe statique du mode itérateur
3 exemples de code
3.1 Interface d'information du personnel - Iperson
Package com.demo.person; / ** * Informations sur le personnel * * @Author * * / interface publique Iperson {/ ** * obtenir des informations sur le personnel * * @return * / public String getSersonInfo ();}3.2 Implémentation des informations du personnel - Personne
package com.demo.person; / ** * Classe d'implémentation spécifique de la personne * * @author * * / classe publique Personne implémente iperson {// nom de chaîne privée nom; // âge privé à l'âge; // Sexe (1: Homme 0: Femme) Int privé Sex; / ** * Méthode du constructeur Réglage du contenu de l'attribut * * @param name * @param Âge * @param sexe * / Public Person (nom de chaîne, int Age, int sexe) {this.name = name; this.age = âge; this.sex = sexe; } / ** * Obtention d'informations sur le personnel * * @return * / public String getPersonInfo () {return "Name:" + this.name + "- Âge:" + this.age + "- genre:" + (this.sex == 1? "Mâle": (this.sex == 0? "Female": ")); }}3.3 Interface de collecte du personnel - Ipersonlist
package com.demo.person; import com.demo.iterator.iterator; / ** * Interface du personnel * * @author * * / interface publique ipersonlist {/ ** * Obtenir le stockage interne du contenu d'information du personnel * * @return * / public iperson [] getPersonList (); / ** * iterator * * @return * / public iterator iterator ();}3.4 liste de personnes
Package com.demo.person; import java.util.random; import com.demo.iterator.arrpersoniterator; import com.demo.iterator.iterator; / ** * Personlist Informations * * @author * * / public class Personlist implémente ipersonlist {// Store User Information List private iperson [] list = new iperson [10]; // Construire la méthode initialise les informations du personnel public PersonList () {Random Random = new Random (); // Créer des informations sur le personnel pour (int i = 0; i <10; i ++) {iperson personne = new personne ("personne" + i, random.nextint (30), random .Nextint (2)); list [i] = personne; // this.list.add (personne); }} / ** * Obtenez le contenu des informations du personnel de stockage interne * * @return * / public iperson [] getPersonList () {return list; } / ** * iterator * * @return * / public iterator iterator () {return new Arrpersoniterator (this.list); }}3.5 Interface itérateur - Iterator
package com.demo.iterator; / ** * Interface Iterator * * @Author * * / interface publique Iterator {// Déterminez si le nœud suivant contient public booléen hasnext (); // Obtenez le prochain objet de nœud objet public suivant (); // Supprimer l'objet objet Object Suppor ();}3.6 Implémentation de l'itérateur - Arpersoniterator
Package com.demo.iterator; Import com.demo.person.iperson; / ** * Implémentation de l'Iterator de l'arborescence * * @Author * * / classe publique Arrpersoniterator implémente Iterator {// private Attributes Store List de personnel INFORMATION D'OBJET PRIVATE IPERSON [] Personlist; // La valeur initiale des informations de localisation de stockage est -1 private int index = -1; / ** * La méthode du constructeur transmet l'objet de liste de personnel dans * * @param personlist * / public Arrpersoniterator (iperson [] PersonList) {this.personlist = personlist; } // Déterminez si le nœud suivant est contenu publique booléen hasnext () {return (this.personlist == null? false: (index <this.personlist.length - 1)); } // Obtenez l'objet de nœud suivant Objet public suivant () {if (this.personlist! = Null && (index <this.personlist.length - 1)) {// Obtenez les informations du personnel dans l'objet de la liste du personnel return this.personlist [++ index]; } return null; } // Supprimer l'objet objet Objet Supv-() {if (this.SersonList! = Null) {iperson personne = this.personlist [index]; this.SersonList [index] = null; personne de retour; } return null; }}3.7 Laissez l'itérateur traverser l'objet de collection - Client
Package Com.demo; Import com.demo.iterator.iterator; import com.demo.person.iperson; import com.demo.person.ipersonlist; importer com.demo.person.personlist; import com.demo.person.personlist; public class Client {/ ** * @param args * / public static void Main (String [String [] args) {// Creat a Person lish lish liswe = new PersonList (); System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- chaque élément et diffuse des informations sur le personnel while (iterator.hasnext ()) {// obtient l'instance d'objet personnel iperson personne = (iperson) iterator.next (); fin..."); }}4 Résultats en cours d'exécution
---- Utilisez l'itérateur pour produire les informations du personnel à démarrer ...
Nom du personnel 0 - Âge: 28 - Sexe: Femelle Nom: Personnel 1 - Age: 25 - Sexe: Femelle Nom: Personnel 2 - Age: 23 - Sexe: Nom des femmes: Personnel 3 - Age: 18 ans - Sexe: Nom des femmes: Personnel 4 - Age: 27 ans - Sexe: Femme: Femme Nom: Femme Âge: 16 - Sexe: Nom des hommes: Personnel 9 - Âge: 12 - Sexe: Femme
---- Utilisez l'itérateur pour produire la fin des informations du personnel ...
Trois principes de conception de ce modèle
1 principe "ouvert et fermé"
2 principe de responsabilité unique
Quatre occasions d'utilisation
1 accéder au contenu d'un objet de collecte sans exposer sa représentation interne.
2 prend en charge plusieurs méthodes de traversée d'objets de collecte.
3 fournit une interface unifiée pour traverser différentes structures d'objets de collecte.
Diagramme de classe statique du mode Itérateur à cinq
Pour plus de contenu lié à Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Introduction et tutoriel avancé sur la programmation Java Oriented Oriented", "Tutorial sur la structure de données Java et l'algorithme", "Résumé des compétences de l'opération Java Dom Dom", "Résumé des compétences de l'opération Java et de l'opération de répertoire" et "Résumé de Java Cache Skills"
J'espère que cet article sera utile à la programmation Java de tous.