Dari dokumentasi Java 1.6 Collection Framework :
Koleksi yang tidak mendukung operasi modifikasi apa pun (seperti
add
,remove
danclear
) disebut sebagai tidak dapat dimodifikasi . [...] Koleksi yang juga menjamin bahwa tidak ada perubahan pada objek Collection yang akan terlihat disebut sebagai tidak dapat diubah .
Kriteria kedua sedikit membingungkan saya. Mengingat koleksi pertama tidak dapat dimodifikasi, dan dengan asumsi bahwa referensi koleksi asli telah dibuang, apa saja perubahan yang dirujuk pada baris kedua? Apakah ini mengacu pada perubahan elemen yang ada di koleksi, yaitu status elemen?
Pertanyaan kedua:
Agar koleksi tidak dapat diubah, bagaimana cara memberikan jaminan tambahan yang ditentukan? Jika status elemen dalam koleksi diperbarui oleh utas, apakah cukup untuk keabadian bahwa pembaruan dalam keadaan itu tidak terlihat pada utas yang menyimpan koleksi yang tidak bisa diubah?
Agar koleksi tidak dapat diubah, bagaimana cara memberikan jaminan tambahan yang ditentukan?
newCol = oldCol.add("element")
akan menghasilkan koleksi baru yaitu salinan dari yang lama dengan 1 elemen lagi, dan semua referensi keoldCol
akan tetap mengarah ke koleksi lama yang sama dan tidak berubah.