Disyorkan, 2024

Pilihan Editor

Perbezaan antara Iterator dan ListIterator di Jawa

The Iterator dan ListIterator adalah dua di antara tiga kursor Jawa. Kedua-dua Iterator dan ListIterator ditakrifkan oleh Rangka Kerja Koleksi dalam pakej J ava.Util . ListIterator adalah antara muka anak antara muka Iterator. Perbezaan utama antara Iterator dan ListIterator adalah bahawa Iterator boleh melintasi unsur-unsur dalam koleksi hanya dalam arah ke depan sedangkan, ListIterator boleh melintasi unsur-unsur dalam koleksi di kedua-dua ke hadapan serta arah ke belakang .

Marilah kita membincangkan beberapa perbezaan antara Iterator dan ListIterator dengan bantuan carta perbandingan yang ditunjukkan di bawah.

Carta Perbandingan

Asas untuk perbandinganIteratorListIterator
AsasIterator boleh melintasi unsur dalam koleksi hanya ke arah hadapan.ListIterator boleh melintasi unsur-unsur dalam koleksi di hadapan serta arah ke belakang.
TambahIterator tidak dapat menambah elemen pada koleksi.ListIteror boleh menambah unsur ke koleksi.
Ubah suaiIterator tidak boleh mengubahsuai unsur dalam koleksi.ListIterator boleh mengubahsuai unsur-unsur dalam kumpulan menggunakan set ().
MelintasiIterator boleh melintasi Peta, Senarai dan Tetapkan.ListIterator boleh melintasi objek Senarai sahaja.
IndeksIterator 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

  1. 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.
  2. Menggunakan iterator anda tidak boleh menambah unsur ke koleksi. Tetapi, dengan menggunakan ListIterator anda boleh menambah elemen pada koleksi.
  3. Menggunakan Iterator, anda tidak boleh mengeluarkan elemen dalam koleksi di mana, kerana Anda boleh mengalih keluar elemen dari koleksi menggunakan ListIterator.
  4. Menggunakan Iterator anda boleh melintasi semua koleksi seperti Map, List, Set. Tetapi, oleh ListIteror anda boleh melintasi Senarai dilaksanakan objek sahaja.
  5. 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.

Top