Iterator ite = Set.iterator();
Iterator ite = List.iterator();
ListIterator listite = List.listIterator();
Kita dapat menggunakan Iterator
untuk melintasi a Set
atau a List
atau a Map
. Tetapi ListIterator
hanya dapat digunakan untuk melintasi List
, tidak dapat melintasi Set
. Mengapa?
Saya tahu bahwa perbedaan utama adalah bahwa dengan iterator kita dapat melakukan perjalanan hanya dalam satu arah tetapi dengan ListIterator
kita dapat melakukan perjalanan kedua arah. Apakah ada perbedaan lain? Dan ada kelebihan ListIterator
lebih Iterator
?
Jawaban:
Perbedaannya tercantum dalam Javadoc for ListIterator
Kamu bisa
sumber
Set
sederhana: Tidak ada "titik saat ini": Elemen tidak memiliki indeks dan tidak ada cara yang berguna Anda dapat menambahkan elemen "sebelum" atau "setelah" yang lain.Ada dua perbedaan:
Kita dapat menggunakan Iterator untuk melintasi Set dan Daftar dan juga tipe Peta Objek. Sementara ListIterator dapat digunakan untuk melintasi untuk Objek tipe Daftar, tetapi tidak untuk Set-jenis Objek.
Artinya, kita bisa mendapatkan objek Iterator dengan menggunakan Set and List, lihat di sini:
Dengan menggunakan Iterator kita dapat mengambil elemen-elemen dari Object Collection dalam arah maju saja.
Metode dalam Iterator:
hasNext()
next()
remove()
Tapi kami mendapatkan objek ListIterator hanya dari antarmuka Daftar, lihat di sini:
dimana sebagai ListIterator memungkinkan Anda untuk melintasi di kedua arah (Baik maju dan mundur). Jadi ia memiliki dua metode seperti
hasPrevious()
danprevious()
selain dari Iterator. Juga, kita bisa mendapatkan indeks elemen berikutnya atau sebelumnya (menggunakannextIndex()
danpreviousIndex()
masing masing )Metode dalam ListIterator:
yaitu, kita tidak bisa mendapatkan objek ListIterator dari antarmuka Set.
Referensi: - Apa perbedaan antara Iterator dan ListIterator?
sumber
Inilah perbedaan di antara mereka:
iterator
Anda hanya dapat bergerak maju, tetapi denganListIterator
Anda dapat memindahkan kata kunci juga saat membaca elemen.ListIterator
Anda dapat memperoleh indeks di titik mana pun saat melintasi, yang tidak mungkin dilakukan denganiterator
s.iterator
Anda dapat memeriksa hanya untuk elemen berikutnya yang tersedia atau tidak, tetapi di dalamlistiterator
Anda dapat memeriksa elemen sebelumnya dan berikutnya.listiterator
Anda dapat menambahkan elemen baru kapan saja, sambil melintasi. Tidak mungkin denganiterator
.listiterator
Anda dapat memodifikasi elemen saat melintasi, yang tidak mungkin dilakukan denganiterator
.Iterator terlihat dan terasa:
Tampilan dan nuansa ListIterator:
sumber