Artikel ini menjelaskan operasi daftar orang akses berdasarkan mode iterator Java. Bagikan untuk referensi Anda, sebagai berikut:
Definisi pola
Mode Iterator menyediakan skema untuk mengakses elemen individu dalam objek pengumpulan secara berurutan tanpa mengekspos representasi internalnya.
Contoh mode kedua
1 analisis pola
Kami meminjam kasus daftar pengunjung untuk menggambarkan pola ini.
2 Iterator Mode Static Class Diagram
3 contoh kode
3.1 Antarmuka Informasi Personil - Iperson
Paket com.demo.person;/** * Informasi personel * * @author * */antarmuka publik Iperson {/** * Dapatkan informasi personel * * @return */string publik getPersonInfo ();}3.2 Implementasi Informasi Personil - Orang
Paket com.demo.person;/** * Kelas implementasi khusus orang * * @author * */kelas publik orang mengimplementasikan iperson {// nama nama string pribadi; // Umur usia pribadi; // Jenis Kelamin (1: Pria 0: Wanita) Private Int Sex; / ** * Metode Konstruktor Mengatur Konten Atribut * * @param Nama * @param Umur * @param sex */ orang publik (nama string, usia int, int sex) {this.name = name; this.age = usia; this.sex = seks; } / ** * Mendapatkan informasi personel * * @return * / string publik getPersonInfo () {return "name:" + this.name + " - usia:" + this.age + " - jenis kelamin:" + (ini. }}3.3 Antarmuka Pengumpulan Personil - IpersonList
Paket com.demo.person; import com.demo.iterator.iterator;/** * antarmuka personel * * @author * */antarmuka publik IpersonList {/** * Dapatkan penyimpanan internal konten informasi personel * * @return */public iPerson [] getPersonList (); / ** * iterator * * @return */ iterator publik iterator ();}3.4 Daftar Person
Paket com.demo.person; impor java.util.random; import com.demo.iterator.arrpersersoniterator; import com.demo.iterator.iterator;/** * Informasi Personlist * * @Author */Daftar Personlist Public IPersonList [// Daftar Informasi Pengguna Store Private IPerson [] [] DAFTAR PUBLIK = = DAFTAR PUBLICE []; // Metode Konstruksi menginisialisasi informasi personel PublicList () {acak acak = acak baru (); // Buat informasi personel untuk (int i = 0; i <10; i ++) {iperson person = orang baru ("orang"+i, acak.nextint (30), acak .nextint (2)); Daftar [i] = orang; // this.list.add (orang); }} / ** * Dapatkan konten informasi personel penyimpanan internal * * @return * / public iperson [] getPersonList () {daftar kembali; } / ** * iterator * * @return * / iterator publik iterator () {return new arrpersoniterator (this.list); }}3.5 Antarmuka Iterator - Iterator
Paket com.demo.iterator;/** * antarmuka iterator * * @author * */antarmuka publik Iterator {// Tentukan apakah simpul berikutnya berisi hasnext boolean publik (); // Dapatkan objek objek node berikutnya objek publik selanjutnya (); // hapus objek objek objek hapus ();}3.6 Implementasi Iterator - ArrpersonIterator
Paket com.demo.iterator; import com.demo.person.iperson;/** * Implementasi iterator array * * @author * */kelas publik arrpersoniterator mengimplementasikan Iterator {// atribut pribadi Store Daftar Personel Informasi Objek Private Private Final Iperson [] PERSONLIST; // Nilai awal informasi lokasi penyimpanan adalah -1 indeks int pribadi = -1; / ** * Metode Konstruktor melewati objek daftar personel di * * @param personlist */ arrpersoniterator publik (iPerson [] personList) {this.personList = personList; } // Tentukan apakah node berikutnya terkandung hasnex hasnext publik () {return (this.personList == null? false: (index <this.personList.length - 1)); } // Dapatkan objek objek node berikutnya objek publik next () {if (this.personList! = Null && (index <this.personList.length - 1)) {// Dapatkan informasi personel dalam daftar daftar personel Return this.personList [++ index]; } return null; } // hapus objek objek objek hapus () {if (this.personList! = Null) {iperson person = this.personList [index]; this.personList [index] = null; orang yang kembali; } return null; }}3.7 Biarkan iterator melintasi objek koleksi - klien
Paket com.demo; import com.demo.iterator.iterator; import com.demo.person.iperson; import com.demo.person.ipersersonlist; import com.demo.person.personlist; import com.demo.person.persersonlist; klien kelas publik { / ** ** @param {public {public) IPersonList PersonList = new personList (); System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- melintasi setiap elemen dan mengeluarkan informasi personel saat (iterator.hasnext ()) {// memperoleh contoh objek personel iPerson person = (iPerson) iterator.Next (); informasi akhir ... ");}}4 hasil berjalan
---- Gunakan iterator untuk mengeluarkan informasi personel mulai ...
Name: Personnel 0 - Age: 28 - Gender: Female Name: Personnel 1 - Age: 25 - Gender: Female Name: Personnel 2 - Age: 23 - Gender: Female Name: Personnel 3 - Age: 18 - Gender: Female Name: Personnel 4 - Age: 27 - Gender: Female Name: Personnel 5 - Age: 28 - Gender: Male Name: Personnel 6 - Age: 25 - Gender: Female Name: Personnel 7 - Age: 23 - Gender: Female Name: Personnel 8 - Umur: 16 - Jenis Kelamin: Nama Pria: Personil 9 - Umur: 12 - Jenis Kelamin: Wanita
---- Gunakan iterator untuk mengeluarkan informasi informasi personel ...
Tiga prinsip desain pola ini
1 Prinsip "Buka dan Tutup"
2 prinsip tanggung jawab tunggal
Empat kesempatan penggunaan
1 Akses isi objek pengumpulan tanpa mengekspos representasi internalnya.
2 mendukung beberapa metode traversal objek pengumpulan.
3 menyediakan antarmuka terpadu untuk melintasi struktur objek koleksi yang berbeda.
Lima Iterator Mode Statis Diagram
Untuk lebih banyak konten terkait Java, pembaca yang tertarik dengan situs ini dapat melihat topik: "Pendahuluan dan Tutorial Lanjutan tentang Pemrograman Berorientasi Objek Java", "Tutorial tentang Struktur Data Java dan Algorithma", "Ringkasan Keterampilan Operasi Java Java", "Ringkasan Operasi Java File dan Keterampilan Operasi Direktori" dan Ringkasan Java Operasi Java "," Ringkasan Operasi Java Keterampilan Operasi Direktori "dan" Ringkasan Java Ringkasan JAVA "
Saya harap artikel ini akan membantu pemrograman Java semua orang.