Direkomendasikan, 2024

Pilihan Editor

Perbedaan Antara Iterator dan ListIterator di Jawa

Iterator dan ListIterator adalah dua di antara tiga kursor di Jawa. Baik Iterator dan ListIterator didefinisikan oleh Collection Framework dalam paket J ava.Util . ListIterator adalah antarmuka anak dari antarmuka Iterator. Perbedaan utama antara Iterator dan ListIterator adalah bahwa Iterator dapat melintasi elemen dalam koleksi hanya dalam arah maju sedangkan, ListIterator dapat melintasi elemen dalam koleksi baik di depan maupun di belakang .

Mari kita bahas beberapa perbedaan lagi antara Iterator dan ListIterator dengan bantuan grafik perbandingan yang ditunjukkan di bawah ini.

Grafik perbandingan

Dasar untuk perbandinganIteratorListIterator
DasarIterator dapat melintasi elemen dalam koleksi hanya ke arah depan.ListIterator dapat melintasi elemen dalam koleksi di depan maupun ke belakang.
MenambahkanIterator tidak dapat menambahkan elemen ke koleksi.ListIteror dapat menambahkan elemen ke koleksi.
MemodifikasiIterator tidak dapat memodifikasi elemen dalam koleksi.ListIterator dapat memodifikasi elemen dalam koleksi menggunakan set ().
MelintasiIterator dapat melintasi Peta, Daftar dan Set.ListIterator dapat melintasi objek Daftar saja.
IndeksIterator tidak memiliki metode untuk mendapatkan indeks elemen dalam koleksi.Menggunakan ListIterator, Anda bisa mendapatkan indeks elemen dalam koleksi.

Definisi Iterator

Iterator adalah antarmuka dalam Kerangka Koleksi . Ini digunakan untuk melintasi elemen koleksi. Iterator memungkinkan Anda untuk mengulangi setiap elemen dalam koleksi satu per satu, mendapatkan elemen dari koleksi atau menghapus elemen dari koleksi. Anda dapat melihat bahwa Anda tidak dapat memodifikasi elemen apa pun dalam koleksi menggunakan Iterator.

Iterator memiliki metode iterator () yang mengembalikan iterator ke awal koleksi. Setelah Anda mendapatkan iterator untuk memulai koleksi kemudian untuk menelusuri elemen dalam koleksi, buat loop yang memanggil hasNext () setiap kali loop iterates. The hasNext () jika mengembalikan true itu berarti bahwa elemen berikutnya ada dalam koleksi, dan jika itu mengembalikan false maka itu berarti semua elemen dilintasi. Lalu di dalam loop, Anda bisa mendapatkan setiap elemen dalam Koleksi menggunakan next () . Metode next () mengembalikan elemen koleksi berikutnya.

Kekurangan:

Menggunakan Iterator Anda dapat melintasi koleksi ke arah maju saja.
Menggunakan Iterator, Anda tidak dapat memanipulasi atau memodifikasi elemen dalam koleksi.

Definisi ListIterator

ListIterator adalah antarmuka dalam kerangka kerja Koleksi, dan memperluas antarmuka Iterator . Menggunakan ListIterator, Anda dapat melintasi elemen koleksi di arah maju dan mundur . Anda juga dapat menambah, menghapus, atau memodifikasi elemen apa pun dalam koleksi. Singkatnya, kita dapat mengatakan itu menghilangkan kelemahan Iterator.

Metode ListIterator adalah sebagai berikut:

hasNext () : Jika mengembalikan true mengonfirmasi bahwa ada lebih banyak elemen dalam koleksi.
next () : Mengembalikan elemen berikutnya dari daftar.
nextIndex () : Mengembalikan indeks elemen berikutnya dalam daftar.
hasPrevious () : Mengembalikan nilai true jika ada elemen dalam arah sebaliknya dalam koleksi.
prior () : Mengembalikan elemen sebelumnya dalam koleksi.
priorIndex () : Mengembalikan indeks elemen sebelumnya dalam koleksi.
remove () : Hapus elemen dari koleksi.
set () : Memodifikasi elemen dalam koleksi.
add () : Menambahkan elemen baru dalam koleksi.

Perbedaan Kunci Antara Iterator dan ListIterator

  1. Perbedaan mendasar antara Iterator dan ListIterator adalah keduanya sebagai kursor, Iterator dapat melintasi elemen dalam koleksi hanya dalam arah maju. Di sisi lain, ListIterator dapat melintasi arah maju dan mundur.
  2. Menggunakan iterator Anda tidak dapat menambahkan elemen apa pun ke koleksi. Tapi, dengan menggunakan ListIterator Anda bisa menambahkan elemen ke koleksi.
  3. Menggunakan Iterator, Anda tidak dapat menghapus elemen dalam koleksi di mana, karena Anda dapat menghapus elemen dari koleksi menggunakan ListIterator.
  4. Menggunakan Iterator Anda dapat melintasi semua koleksi seperti Peta, Daftar, Set. Tapi, oleh ListIteror Anda bisa melintasi objek Daftar diimplementasikan saja.
  5. Anda dapat mengambil indeks elemen menggunakan Iterator. Tetapi karena Daftar berurutan dan berbasis indeks Anda dapat mengambil indeks elemen dalam menggunakan ListIterator.

Kesimpulan:

Anda dapat menggunakan ListIterator ketika Anda harus secara khusus melintasi objek Daftar di kedua arah maju dan mundur. Selain itu, Anda dapat menggunakan Iterator karena mendukung semua objek koleksi tipe.

Top