이 기사에서는 Java의 반복자 모드를 기반으로 액세스 사람 목록 작업에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
패턴 정의
반복자 모드는 내부 표현을 노출시키지 않고 순서대로 수집 객체의 개별 요소에 액세스하는 스키마를 제공합니다.
두 번째 모드의 예
1 패턴 분석
이 패턴을 설명하기 위해 방문자 목록의 사례를 빌립니다.
2 반복자 모드 정적 클래스 다이어그램
3 코드 예제
3.1 직원 정보 인터페이스 - iPerson
package com.demo.person;/** * 인사 정보 * * @author */public interface iPerson {/** * 인사 정보 획득 * * @return */public String getPersonInfo ();}3.2 인력 정보 구현 - 사람
package com.demo.person;/** * 개인 특정 구현 클래스 * * @author * */public class person emplesments iperson {// 개인 문자열 이름; // 연령 개인 INT 연령; // 성별 (1 : 남성 0 : 여성) 사적인 int 섹스; / ** * 생성자 메소드 설정 속성 내용 * * @param name * @param age * @param sex */ public person (문자열 이름, int age, int sex) {this.name = name; this.age = age; this.sex = 섹스; } / ** * 직원 정보 얻기 * * @return * / public String getPersonInfo () {return "name :" + this.name + " -" + this.age + " - 성별 :" + (this.sex == 1? "male": (this.sex == 0? "femal": ""); }}3.3 인원 컬렉션 인터페이스 - iPersonList
package com.demo.person; import com.demo.iterator.iterator;/** * 인사 인터페이스 * * @author */public interface iPersonList {/** * 직원 정보 내부 저장 정보 * @return */public iperson [] getPersonList (); / ** * iterator * * @return */ public iterator iterator ();}3.4 사람리스트
package com.demo.person; import java.util.random; import com.demo.iterator.arrpersoniterator; import com.demo.iterator.iterator;/** * PersonList Information * * @Author * */Public Class PersonList는 IpersonList {// STORE 개인 IPerson [] List = New Iperson [10]; // 구성 메소드를 초기화 직원 정보 공개 personList () {random random = new random (); // (int i = 0; i <10; i ++)에 대한 인사 정보 생성 {iperson person = new Person ( "person"+i, random.nextint (30), random .nextint (2)); [i] = 사람; // this.list.add (사람); }} / ** * 내부 스토리지 직원 정보 콘텐츠 가져 오기 * * @return * / public iperson [] getPersonList () {return list; } / ** * iterator * * @return * / public iterator iterator () {return new arrpersoniterator (this.list); }}3.5 반복자 인터페이스 - 반복자
package com.demo.iterator;/** * iterator interface * * @author */public interface iterator {// 다음 노드에 public boolean hasnext ()가 포함되어 있는지 여부를 결정합니다. // 다음 노드 객체 가져 오기 공개 객체 다음 (); // 객체 삭제 공개 객체 remove ();}3.6 반복자 구현 - Arrpersoniterator
package com.demo.iterator; import com.demo.person.iperson;/** * 배열 반복기 구현 * * @author */public class arrpersoniterator empless iterator {// private actributes store 객체 정보 비공개 최종 iPerson [] Personlist; // 스토리지 위치의 초기 값은 -1 개인 int index = -1입니다. / ** * 생성자 메소드는 * * @param personlist */ public arrpersoniterator (iPerson [] PersonList) {this.personList = personList; } // 다음 노드가 포함되어 있는지 확인 공개 부울 hasnext () {return (this.personList == null? false : (index <this.personList.Length -1)); } // 다음 노드 객체 가져 오기 공개 객체를 가져옵니다 () {if (this.personList! = null && (index <this.personList.Length -1)) {// 인사 목록에서 인사 정보를 가져옵니다. } return null; } // 객체 삭제 공개 객체 remove () {if (this.personList! = null) {iPerson person = this.personList [index]; this.personlist [index] = null; 귀환 담당자; } return null; }}3.7 반복자가 수집 객체를 가로 지르도록하자 - 클라이언트
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 { / ** * @param args * / public static void main (args a a argss) iPersonList PersonList = New PersonList (); System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- personList.iterator(); // Loop iterator (iterator.hasnext ()) {// 인스턴스 인스턴스 Iperson Person = (person! = null) {// 출력 인사 정보 시스템을 획득합니다 정보 종료 ... ");}}4 실행 결과
---- 반복자를 사용하여 직원 정보 시작 ...
이름 : 직원 0- 나이 : 28- 여성 이름 : 직원 1- 성별 1- 성별 : 여성 이름 : 여성 이름 : 인원 2- 성별 : 23- 여성 이름 : 인원 3- 나이 : 18- 여성 이름 : 직원 4- 성별 : 여성 이름 : 직원 5- 나이 : 28- 남성 이름 : 25 세 - 여성 이름 : 여성 7- 성별 8 : 인원 7 : 성별 8 : 나이 : 16- 성별 : 남성 이름 : 인원 9- 나이 : 12- 성별 : 여성
---- 반복자를 사용하여 인력 정보가 끝납니다 ...
이 패턴의 디자인의 세 가지 원리
1 "열고 닫습니다"원칙
2 단일 책임 원칙
4 개의 사용법
1 내부 표현을 노출시키지 않고 수집 객체의 내용을 1에 액세스하십시오.
도 2는 수집 객체의 여러 통과 방법을 지원합니다.
3은 다른 수집 객체 구조를 가로 지르는 통합 인터페이스를 제공합니다.
5 개의 반복자 모드 정적 클래스 다이어그램
더 많은 Java 관련 컨텐츠를 위해이 사이트에 관심이있는 독자는 "Java 객체 지향 프로그래밍에 대한 소개 및 고급 튜토리얼", "Java 데이터 구조 및 알고리즘에 대한 자습서", "Java Operation Dom Node Skills 요약", "Java 파일 및 디렉토리 운영 기술 요약"및 "Java Cache Cache 운영 기술 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.