Marilah kita membincangkan beberapa perbezaan antara Iterator dan ListIterator dengan bantuan carta perbandingan yang ditunjukkan di bawah.
Carta Perbandingan
Asas untuk perbandingan | Iterator | ListIterator |
---|---|---|
Asas | Iterator boleh melintasi unsur dalam koleksi hanya ke arah hadapan. | ListIterator boleh melintasi unsur-unsur dalam koleksi di hadapan serta arah ke belakang. |
Tambah | Iterator tidak dapat menambah elemen pada koleksi. | ListIteror boleh menambah unsur ke koleksi. |
Ubah suai | Iterator tidak boleh mengubahsuai unsur dalam koleksi. | ListIterator boleh mengubahsuai unsur-unsur dalam kumpulan menggunakan set (). |
Melintasi | Iterator boleh melintasi Peta, Senarai dan Tetapkan. | ListIterator boleh melintasi objek Senarai sahaja. |
Indeks | Iterator tidak mempunyai kaedah untuk mendapatkan indeks elemen dalam koleksi. | Menggunakan ListIterator, anda boleh mendapatkan indeks elemen dalam koleksi. |
Definisi Iterator
Iterator adalah antara muka dalam Rangka Kerja Koleksi . Ia digunakan untuk melintasi unsur pengumpulan. Iterator membolehkan anda mengulangi setiap elemen dalam koleksi satu demi satu, mendapatkan unsur-unsur dari koleksi atau mengeluarkan elemen dari koleksi. Anda dapat melihat bahawa anda tidak boleh mengubah sebarang elemen dalam koleksi menggunakan Iterator.
Iterator mempunyai kaedah iterator () yang mengembalikan penyesuai ke permulaan koleksi. Sebaik sahaja anda mendapatkan iterasi ke permulaan koleksi kemudian untuk melintasi unsur-unsur dalam koleksi menubuhkan gelung yang memanggil hasNext () setiap kali gelung meleleh. The hasNext () jika mengembalikan benar ia bermakna unsur seterusnya berada di koleksi, dan jika ia kembali palsu maka itu berarti semua elemen dilalui. Kemudian di dalam gelung, anda boleh mendapatkan setiap elemen dalam Koleksi menggunakan seterusnya () . Kaedah seterusnya () mengembalikan elemen koleksi seterusnya.
Kelemahan:
Menggunakan Iterator anda boleh melintasi koleksi di arah hadapan sahaja.
Menggunakan Iterator, anda tidak boleh memanipulasi atau mengubahsuai unsur dalam koleksi.
Definisi Senarai Penguji
ListIterator adalah antara muka dalam rangka Koleksi, dan ia meluaskan antara muka Iterator . Menggunakan ListIterator, anda boleh melintasi unsur-unsur koleksi di kedua-dua arah ke hadapan dan ke belakang . Anda juga boleh menambah, mengeluarkan atau mengubah sebarang elemen dalam koleksi. Pendek kata, kita boleh mengatakan ia membuang kelemahan dari Iterator.
Kaedah ListIterator adalah seperti berikut:
hasNext () : Jika pulangan benar mengesahkan bahawa terdapat lebih banyak unsur dalam koleksi.
seterusnya () : Mengembalikan elemen seterusnya senarai.
nextIndex () : Mengembalikan indeks elemen seterusnya dalam senarai.
hasPrevious () : Mengembalikan benar jika terdapat unsur-unsur dalam arah sebaliknya dalam koleksi.
sebelumnya () : Mengembalikan elemen sebelumnya dalam koleksi.
previousIndex () : Indeks pulangan unsur sebelumnya dalam koleksi.
keluarkan () : Padam unsur dari koleksi.
tetapkan () : Mengubah elemen dalam koleksi.
tambah () : Menambah elemen baru dalam koleksi.
Perbezaan Utama Antara Iterator dan ListIterator
- Perbezaan asas antara Iterator dan ListIterator adalah bahawa kedua-duanya adalah kursor, Iterator boleh melintasi elemen dalam koleksi hanya ke arah hadapan. Sebaliknya, ListIterator boleh melintasi arah ke hadapan dan ke belakang.
- Menggunakan iterator anda tidak boleh menambah unsur ke koleksi. Tetapi, dengan menggunakan ListIterator anda boleh menambah elemen pada koleksi.
- Menggunakan Iterator, anda tidak boleh mengeluarkan elemen dalam koleksi di mana, kerana Anda boleh mengalih keluar elemen dari koleksi menggunakan ListIterator.
- Menggunakan Iterator anda boleh melintasi semua koleksi seperti Map, List, Set. Tetapi, oleh ListIteror anda boleh melintasi Senarai dilaksanakan objek sahaja.
- Anda boleh mendapatkan indeks elemen menggunakan Iterator. Tetapi kerana Senarai adalah berurutan dan berasaskan indeks, anda boleh mendapatkan indeks elemen menggunakan SenaraiIterator.
Kesimpulan:
Anda boleh menggunakan ListIterator apabila anda perlu melangkaui objek Senarai di kedua-dua arah ke hadapan dan sebaliknya. Sekiranya anda boleh menggunakan Iterator kerana ia menyokong semua objek koleksi jenis.