Ruang lingkup dan hubungan iterator dan listiterator:
(1) Iterator dapat digunakan untuk mengimplementasikan Daftar Arraylist Antarmuka Iteratif, LinkedList, MAP, dll.
(2) ListIterator, sesuai namanya, digunakan untuk mengulangi daftar untuk mengimplementasikan ArrayList dan LinkedList.
(3) Seperti yang dapat dilihat dari kode sumber atau dokumentasi API, Iterator adalah kelas induk dari Listiterator.
ListIterator Antarmuka Publik <E> Memperluas Iterator <E> {// Omit ...}Metode baru telah ditambahkan ke ListIterator.
Analisis contoh posisi kursor implisit iterator:
Seperti yang ditunjukkan pada gambar di atas, ada empat elemen A, B, C, D dalam daftar koleksi yang menjadi iterator untuk mengulangi. Ketika metode xxx.iterator () atau xxx.listiterator () dipanggil,
Iterator menunjuk ke posisi iterator_one, dan ketika metode xxx.next () dipanggil, posisi iterator menunjuk ke posisi iterator_two.
Posisi yang ditunjuk oleh iterator tidak secara langsung berlawanan dengan elemen, tetapi di antara elemen.
Metode dalam Iterator dan Listiterator:
------ Metode di Iterator:
Ringkasan metode API resmi:
Analisis Metode:
HasNext (): Menentukan apakah ada elemen pada posisi berikutnya yang ditunjuk oleh iterator elemen dalam koleksi. Kembalikan Benar, jika tidak, Kembalikan Salah
next (): Mengembalikan nilai elemen berikutnya pada posisi yang ditunjuk oleh iterator.
Hapus (): Hapus nilai yang dihapus oleh iterator melalui iterator.
------ Metode di ListIterator:
Ringkasan metode API resmi:
Analisis Metode:
Tambah (EE): Masukkan elemen yang ditentukan dalam koleksi. Posisi penyisipan terkait dengan operasi terakhir () atau sebelumnya () metode.
Jika operasi terakhir adalah berikutnya (), elemen dimasukkan setelah elemen dihapus berikutnya, dan jika sebelumnya (), elemen dimasukkan sebelum elemen dihapus.
HasNext (): Ketika himpunan dilalui dalam urutan positif, itu menentukan apakah elemen berikutnya ditunjuk oleh kursor implisit ada. Jika ada, itu mengembalikan true, jika tidak ia kembali salah.
Hasprevious (): Ketika set tersebut dilalui terbalik, ia menentukan apakah elemen sebelumnya dari kursor implisit ada. Jika ada, itu mengembalikan true, jika tidak ia kembali salah.
next (): Mengembalikan nilai elemen berikutnya pada posisi yang ditunjuk oleh kursor implisit.
nextIndex (): Mengembalikan nilai indeks elemen berikutnya pada posisi yang ditunjuk oleh kursor implisit.
Sebelumnya (): Mengembalikan nilai elemen sebelumnya pada posisi yang ditunjuk oleh kursor implisit.
Sebelumnya (): Mengembalikan nilai indeks dari elemen posisi sebelumnya yang ditunjukkan oleh kursor implisit.
Hapus (): Menghapus elemen dari koleksi bukan untuk menghapus semua elemen, tetapi untuk menghapus elemen yang dikembalikan oleh operasi terakhir berikutnya () atau sebelumnya ().
Jika selanjutnya () atau sebelumnya () tidak mengembalikan nilai, kesalahan akan dilaporkan.
Set (EE): Ganti elemen yang dikembalikan oleh Next () atau sebelumnya () dengan E dari daftar. Misalnya, jika berikutnya () dikeluarkan sebagai A, Anda dapat mengganti dengan satu dengan set.
Contoh 1:
package com.lanhuigu.java;import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class ListIteratorAPITest {public static void main(String[] args) {List<String> list = new ArrayList <string> (); list.add ("a"); list.add ("b"); list.add ("c"); list.add ("d"); // Pada saat ini, iterator menunjuk ke iterator_one listerator <string> listiterator = list.listiterator (); // saat ini poin ini poinnya, poin ini, ITERATOROR = ListIterator = Listerator (); listiterator.next (); // hapus elemen listiterator.remove (); // hapus elemen yang diambil oleh Next. Pada saat ini, A telah dihapus dari koleksi. Tambahkan elemen // listiterator.previous (); listiterator.add ("e"); // Sebelum menunjuk ke posisi iterator_two, itu adalah posisi sebelumnya // cetak elemen yang diambil oleh Next. System.out.println ("FirstElement:" + FirstElement); // Menghidupkan kembali posisi penunjuk ke posisi iterator_one, tetapi A belum dihapus, dan tambahkan e listiterator = list.listiterator (); while (listiterator.hasnext ()) {System.out.println(listIterator.next());}System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- list.listIterator ();Contoh 2:
Paket com.lanhuigu.java; import java.util.arraylist; import java.util.iterator; import java.util.list; ArrayList <String> (); list.add ("a"); list.add ("b"); list.add ("c"); list.add ("d"); // Cara pertama untuk melintasi set adalah dengan langsung melintasi pernyataan loop (untuk, do-while, while) // for for for (string e: list)) {System.out.println (e);} System.out.println ("--------------------"); // Cara kedua untuk melintasi set (iterator) iterator <string> iterator = list.iterator (); while (iterator.hasnext ()) {System.out.println (iterator.next ());} System.out.println ("-----------------------------"); // Cara ketiga untuk melintasi set (ListIterator) ListIterator <string> listiterator = list.listiterator (); while (listIterator.hasnext ()) {System.out.println (listIterator.next ());} System.out.println ("-------------------");}}}Meringkaskan
Di atas adalah semua penjelasan terperinci dari contoh iterator dan listiterator di java. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!