Gönderen Java 1.6 Koleksiyonu Çerçeve belgeler :
Herhangi bir değişiklik işlemleri (örneğin desteklemeyen Koleksiyonları
add
,remove
veclear
) olarak adlandırılır değiştirilemez . [...] Ek olarak Koleksiyon nesnesinde hiçbir değişikliğin görünür olmayacağını garanti eden koleksiyonlar, değişmez olarak adlandırılır .
İkinci kriter kafamı biraz karıştırıyor. İlk koleksiyon değiştirilemez olduğu ve orijinal koleksiyon referansının elden çıkarıldığı varsayıldığında, ikinci satırda atıfta bulunulan değişiklikler nelerdir? Koleksiyonda tutulan öğelerdeki değişikliklere, yani öğelerin durumuna mı atıfta bulunuyor?
İkinci soru:
Bir koleksiyonun değişmez olması için, belirtilen ek garantilerin sağlanması nasıl yapılır? Koleksiyondaki bir öğenin durumu bir iş parçacığı tarafından güncellenirse, durumdaki bu güncellemelerin değişmez koleksiyonu tutan iş parçacığında görünmemesi değişmezlik için yeterli midir?
Bir koleksiyonun değişmez olması için, belirtilen ek garantilerin sağlanması nasıl yapılır?
newCol = oldCol.add("element")
1 eleman daha eski olanın kopyası olan yeni koleksiyon üretecek ve tüm referanslaroldCol
aynı değişmemiş eski koleksiyona işaret edecektir.