से जावा 1.6 संग्रह फ्रेमवर्क प्रलेखन :
ऐसे संग्रह जो किसी भी संशोधन कार्यों (जैसे
add
,remove
औरclear
) का समर्थन नहीं करते हैं , को अपरिवर्तनीय कहा जाता है । [...] ऐसे संग्रह जो अतिरिक्त गारंटी देते हैं कि संग्रह वस्तु में कोई परिवर्तन कभी दिखाई नहीं देगा, को अपरिवर्तनीय कहा जाता है ।
दूसरा मानदंड मुझे थोड़ा भ्रमित करता है। यह देखते हुए कि पहला संग्रह असंदिग्ध है, और यह मानते हुए कि मूल संग्रह संदर्भ को हटा दिया गया है, दूसरी पंक्ति में संदर्भित किए गए परिवर्तन क्या हैं? क्या यह संग्रह में रखे गए तत्वों यानी तत्वों की स्थिति में बदलाव का जिक्र है?
दूसरा प्रश्न:
संग्रहणीय होने के लिए, कोई व्यक्ति अतिरिक्त ग्वारंटियों को प्रदान करने के बारे में कैसे बताता है? यदि संग्रह में किसी तत्व की स्थिति को थ्रेड द्वारा अद्यतन किया जाता है, तो क्या यह अपरिवर्तनीयता के लिए पर्याप्त है कि राज्य में वे अपडेट अपरिवर्तनीय संग्रह को पकड़े हुए थ्रेड पर दिखाई नहीं दे रहे हैं?
संग्रह अपरिवर्तनीय होने के लिए, कोई व्यक्ति अतिरिक्त गारंटी प्रदान करने के बारे में कैसे बताता है?
newCol = oldCol.add("element")
नए संग्रह का उत्पादन करेगा जो 1 और तत्व के साथ पुराने की प्रतिलिपि है, औरoldCol
इच्छा के सभी संदर्भ अभी भी उसी अपरिवर्तित पुराने संग्रह को इंगित करेंगे।