Dieser Artikel beschreibt den Vorgang der Zugriffspersonenliste basierend auf dem Iterator -Modus von Java. Teilen Sie es für Ihre Referenz wie folgt weiter:
Eine Musterdefinition
Der Iterator -Modus bietet ein Schema, um auf einzelne Elemente in einem Sammelobjekt nacheinander zugreifen zu können, ohne seine interne Darstellung aufzudecken.
Beispiele für den zweiten Modus
1 Musteranalyse
Wir leihen uns den Fall der Besucherliste aus, um dieses Muster zu veranschaulichen.
2 Iterator -Modus Statische Klassendiagramm
3 Code Beispiele
3.1 Personalinformationsschnittstelle - IPerson
Paket com.demo.person;/** * Personalinformationen * * @author * */public interface iperson {/** * Personalinformationen erhalten * * @return */public String getPersonInfo ();}3.2 Implementierung von Personalinformationen - Person
Paket com.demo.person;/** * Personspezifische Implementierungsklasse * * @author * */public class Person implementiert iperson {// Name privater Zeichenfolge Name; // Alter privat int Alter; // Geschlecht (1: männlich 0: weiblich) Privat int Sex; / ** * Konstruktor -Methode Einstellung Attributinhalt * * @param name * @param ay * @param sex */ public Person (String -Name, int ay, int sex) {this.name = name; this.age = Alter; this.sex = sex; } / ** * Personalinformationen erhalten * * @return * / public String getPersonInfo () {return "Name:" + this.name + " - Alter:" + this.age + " - Geschlecht:" + (this.sex == 1? "MALE: (this.sex == 0?" Weiblich ":"); }}3.3 Personal Sammlungschnittstelle - IPersonList
Paket com.demo.person; com.demo.iterator.iterator;/** * Personal Interface * * @Author * */public interface iPersonList {/** * Erhalten Sie interne Speicher von Personalinformationen Inhalt * * @return */public iPerson [] getPersonList (); / ** * Iterator * * @return */ public iterator iterator ();}3.4 Personlist
Paket com.demo.person; import java.util.random; import com.demo.iterator.arrpersoniterator; import com.demo.iterator // Methode konstruieren Initialisierung von Personalinformationen public PersonList () {random random = new random (); // Personalinformationen erstellen für (int i = 0; i <10; i ++) {iperson Person = new Person ("Person"+i, random.nextint (30), random .Nextint (2)); Liste [i] = Person; // this.list.add (Person); }} / ** * Interne Speicherpersonalinformationen inhalt erhalten } / ** * Iterator * * @return * / public iterator iterator () {return New ArrPersoniterator (this.list); }}3.5 Iterator -Schnittstelle - Iterator
Paket com.demo.iterator;/** * Iterator -Schnittstelle * * @Author * */public interface iterator {// Bestimmen Sie, ob der nächste Knoten public boolean hasNext () enthält; // das nächste Knotenobjekt öffentliches Objekt als nächstes () erhalten; // das Objekt öffentliches Objekt remove ();} löschen3.6 Iterator -Implementierung - Arrpersoniterator
Paket com.demo.iterator; import com.demo.person.iperson;/** * Array Iterator Implementierung * * @Author * */public class Arrpersoniterator implementiert Iterator {// private Attributes Store -Personalliste Objektinformationen privates Final IPerson [] Personlist; // Der Anfangswert der Speicherortinformationen ist -1 private int index = -1; / ** * Die Konstruktor -Methode gibt das Personallistenobjekt in * * @param PersonList */ public arrpersoniterator (iperson [] Personlist) {this.personList = PersonList; } // Bestimmen Sie, ob der nächste Knoten public boolean hasNext () {return (this.personList == null? false: (index <this.PersonList.length - 1)); } // das nächste Knotenobjekt öffentliches Objekt Next () {if (this.personList! = Null && (index <this.PersonList.length - 1)) {// Die Personalinformationen in das Personallisten -Objekt zurückholen. } return null; } // Das Objekt öffentliches Objekt remove () {if (this.personList! = Null) {iperson person = this.personList [index]; this.personList [index] = null; Rückkehr Person; } return null; }}3.7 Lassen Sie den Iterator das Sammelobjekt - Client durchqueren
package 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 static void main(String[] args) { // Create a person list object IPersonList personList = neue Personlist (); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ durchquert jedes Element und gibt Personalinformationen aus (iterator.hasnext ()) {// die Personal-Objektinstanz iPerson Person = (IPerson) Iterator.Next (); Ende..."); }}4 Auslaufergebnisse
---- Verwenden Sie den Iterator, um Personalinformationen auszuführen ...
Name: Personal 0 - Alter: 28 - Geschlecht: weiblicher Name: Personal 1 - Alter: 25 - Geschlecht: weiblicher Name: Personal 2 - Alter: 23 - Geschlecht: weiblicher Name: Personal 3 - Alter: 18 - Geschlecht: weiblicher Name: Personal 4 - Alter: 27 - Geschlecht: weibliche Name: Personal 5 - Alter: 28 - Gender: Male Name: Personal 6 - Alter: 25 - Gender: 25 - Gender: 25 - Gender: 25 - Gender: 25 - Gender: 25 - Gender: 25 - Gender: 25 - gender: 25 - gender: gender name: gender name: gender name: mittel name - teurn Alter: 16 - Geschlecht: Männlicher Name: Personal 9 - Alter: 12 - Geschlecht: weiblich
---- Verwenden Sie den Iterator, um die Personalinformationen auszugeben ...
Drei Prinzipien der Gestaltung dieses Musters
1 "offen und schließt" Prinzip
2 Prinzip der Einzelverantwortung
Vier Nutzungsanlässe
1 Geben Sie den Inhalt eines Sammelobjekts an, ohne seine interne Darstellung aufzudecken.
2 unterstützt mehrere Traversalmethoden von Sammlungsobjekten.
3 bietet eine einheitliche Schnittstelle zum Durchqueren verschiedener Sammlungsobjektstrukturen.
Fünf Iteratormodus Statische Klassendiagramm
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"
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.