Sepertinya itu adalah cara terbaik untuk melakukannya:
String first = strs.iterator().next();
Pertanyaan yang bagus ... Pada awalnya, ini kelihatannya merupakan kekeliruan untuk Collection
antarmuka.
Perhatikan bahwa "pertama" tidak akan selalu mengembalikan hal pertama yang Anda masukkan ke dalam koleksi, dan mungkin hanya masuk akal untuk koleksi yang dipesan. Mungkin itu sebabnya tidak ada get(item)
panggilan, karena pesanan belum tentu terpelihara.
Meskipun mungkin tampak sedikit sia-sia, itu mungkin tidak seburuk yang Anda pikirkan. Iterator
Benar - benar hanya berisi informasi pengindeksan ke dalam koleksi, bukan biasanya salinan seluruh koleksi. Meminta metode ini membuat instantiate Iterator
objek, tetapi itu benar-benar satu-satunya overhead (tidak seperti menyalin semua elemen).
Sebagai contoh, melihat jenis yang dikembalikan oleh ArrayList<String>.iterator()
metode, kita melihat bahwa itu adalah ArrayList::Itr
. Ini adalah kelas internal yang hanya mengakses elemen daftar secara langsung, daripada menyalinnya.
Pastikan Anda memeriksa pengembalian iterator()
karena mungkin kosong atau null
tergantung pada implementasinya.