บทความนี้อธิบายการดำเนินการรายการบุคคลที่เข้าถึงตามโหมดตัววนซ้ำของ Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
คำจำกัดความรูปแบบ
โหมดตัววนซ้ำมีสคีมาเพื่อเข้าถึงองค์ประกอบแต่ละรายการในวัตถุคอลเลกชันตามลำดับโดยไม่เปิดเผยการเป็นตัวแทนภายใน
ตัวอย่างของโหมดที่สอง
1 การวิเคราะห์รูปแบบ
เรายืมกรณีของรายชื่อผู้เข้าชมเพื่อแสดงรูปแบบนี้
2 โหมดตัวหมุนไดอะแกรมคลาสคงที่
3 ตัวอย่างรหัส
3.1 อินเทอร์เฟซข้อมูลบุคลากร - Iperson
แพ็คเกจ com.demo.person;/** * ข้อมูลบุคลากร * * @author * */อินเตอร์เฟสสาธารณะ Iperson {/** * รับข้อมูลบุคลากร * * @return */สตริงสาธารณะ getPersonInfo ();}3.2 การใช้ข้อมูลบุคลากร - บุคคล
แพ็คเกจ com.demo.person;/** * คลาสการใช้งานเฉพาะบุคคล * * @author * */บุคคลระดับสาธารณะใช้ iperson {// ชื่อสตริงส่วนตัวชื่อ; // อายุ Int อายุ // เพศ (1: ชาย 0: เพศหญิง) เพศสัมพันธ์ส่วนตัว; / ** * เมธอดการตั้งค่าเนื้อหาแอตทริบิวต์ * * @param ชื่อ * @param อายุ * @param sex */ บุคคลสาธารณะ (ชื่อสตริงอายุ int, int sex) {this.name = name; this.age = อายุ; this.sex = เพศ; } / ** * การได้รับข้อมูลบุคลากร * * @return * / สตริงสาธารณะ getPersonInfo () {return "ชื่อ:" + this.name + " - อายุ:" + this.age + " - เพศ:" + (this.sex == 1? -3.3 อินเทอร์เฟซการรวบรวมบุคลากร - IpersonList
แพ็คเกจ com.demo.person; นำเข้า com.demo.iterator.iterator;/** * อินเทอร์เฟซบุคลากร * * @author * */ส่วนต่อประสานสาธารณะ ipersonlist {/** * รับที่เก็บข้อมูลภายในของเนื้อหาข้อมูลบุคลากร * * @return */iperson สาธารณะ [] getPersonList (); / ** * iterator * * @return */ public iterator iterator ();}3.4 รายการบุคคล
แพ็คเกจ com.demo.person; นำเข้า java.util.random; นำเข้า com.demo.iterator.arrpersoniterator; นำเข้า com.demo.iterator.iterator;/** * ข้อมูลบุคคล * * * @author * */ใหม่ // วิธีการสร้างเริ่มต้นข้อมูลบุคลากรบุคคลสาธารณะ () {สุ่มสุ่ม = ใหม่สุ่ม (); // สร้างข้อมูลบุคลากรสำหรับ (int i = 0; i <10; i ++) {iperson person = บุคคลใหม่ ("บุคคล"+i, random.nextint (30), สุ่ม. nextint (2)); รายการ [i] = บุคคล; // this.list.add (บุคคล); }} / ** * รับเนื้อหาข้อมูลบุคลากรภายใน * * @return * / iperson สาธารณะ [] getPersonList () {รายการส่งคืน; } / ** * iterator * * @return * / public iterator iterator () {ส่งคืน arrpersoniterator ใหม่ (this.list); -3.5 อินเตอร์เฟสตัววนซ้ำ - ตัววนซ้ำ
แพ็คเกจ com.demo.iterator;/** * อินเตอร์เฟสตัววนซ้ำ * * @author * */อินเตอร์เฟสสาธารณะตัววนซ้ำ {// พิจารณาว่าโหนดถัดไปมีบูลีนสาธารณะ hasnext (); // รับ Object Object Node Object Next (); // ลบวัตถุสาธารณะวัตถุลบ ();}3.6 การใช้งานตัววนซ้ำ - arrpersoniterator
แพ็คเกจ com.demo.iterator; นำเข้า com.demo.person.iperson;/** * การใช้งาน erray iterator * * @author * */คลาสสาธารณะ arrpersoniterator ดำเนินการ iterator {// แอตทริบิวต์ส่วนตัวร้านค้ารายชื่อบุคคล // ค่าเริ่มต้นของข้อมูลตำแหน่งที่เก็บข้อมูลคือ -1 ดัชนี INT ส่วนตัว = -1; / ** * วิธีตัวสร้างผ่านวัตถุรายการบุคลากรใน * * @param personlist */ public arrpersoniterator (iperson [] personlist) {this.personList = personList; } // ตรวจสอบว่าโหนดถัดไปมีบูลีนสาธารณะ hasnext () {return (this.personList == null? talse: (index <this.personlist.length - 1)); } // รับ Object Object Node Next Next () {ถ้า (this.personList! = null && (ดัชนี <this.personlist.length - 1)) {// รับข้อมูลบุคลากรในวัตถุรายการบุคลากรส่งคืนนี้ personlist [++ ดัชนี]; } return null; } // ลบวัตถุสาธารณะวัตถุลบ () {ถ้า (this.personList! = null) {iperson person = this.personList [ดัชนี]; this.personList [ดัชนี] = null; คนกลับ; } return null; -3.7 ให้ตัววนซ้ำสำรวจวัตถุคอลเลกชัน - ไคลเอนต์
แพ็คเกจ com.demo; นำเข้า com.demo.iterator.iterator; นำเข้า com.demo.person.iperson; นำเข้า com.demo.person.ipersonlist; นำเข้า com.demo.person.personList; นำเข้า com.demo.person.personList; IpersonList PersonList = new PersonList (); System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- สำรวจแต่ละองค์ประกอบและเอาท์พุทบุคลากรในขณะที่ (iterator.hasnext ()) {// ได้รับอินสแตนซ์ของวัตถุบุคลากร iperson = (iperson) iterator.next (); ข้อมูลบุคลากรสิ้นสุด ... ");}}4 ผลการทำงาน
---- ใช้ตัววนซ้ำเพื่อเริ่มข้อมูลบุคลากรเริ่มต้น ...
ชื่อ: บุคลากร 0 - อายุ: 28 - เพศ: หญิงชื่อ: บุคลากร 1 - อายุ: 25 - เพศ: หญิงชื่อ: บุคลากร 2 - อายุ: 23 - เพศ: ชื่อหญิง: บุคลากร 3 - อายุ: 18 - เพศ: ชื่อหญิง: บุคลากร 4 - อายุ: 27 - เพศ: หญิงชื่อ: บุคลากร: บุคลากร: อายุ: 16 - เพศ: ชื่อชาย: บุคลากร 9 - อายุ: 12 - เพศ: หญิง
---- ใช้ตัววนซ้ำเพื่อส่งออกข้อมูลบุคลากรสิ้นสุด ...
สามหลักการของการออกแบบรูปแบบนี้
หลักการ 1 "เปิดและปิด"
2 หลักการความรับผิดชอบเดี่ยว
สี่ครั้งการใช้งาน
1Access เนื้อหาของวัตถุคอลเลกชันโดยไม่เปิดเผยการเป็นตัวแทนภายใน
2 รองรับวิธีการสำรวจหลายวิธีของวัตถุคอลเลกชัน
3 จัดเตรียมอินเทอร์เฟซแบบครบวงจรสำหรับการสำรวจโครงสร้างวัตถุคอลเลกชันที่แตกต่างกัน
ไดอะแกรมคลาส Iterator Five
สำหรับเนื้อหาที่เกี่ยวข้องกับ Java ผู้อ่านที่สนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "บทนำและการสอนขั้นสูงเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุ Java", "การสอนเกี่ยวกับโครงสร้างข้อมูล Java และอัลกอริทึม" สรุปการดำเนินงานของ Java
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน