अगर मैं लिखनाCollections.unmodifiableList और बचाव की मुद्रा में प्रति
List<Integer> a1 = Arrays.asList(1, 2, 3);
List<Integer> a2 = Collections.unmodifiableList(a1);
a2
-केवल पढ़ने के लिए लेकिन अगर मैं
a1.set(0,10);
तो लिखने a2
भी संशोधित किया गया है।
तो एपीआई में कहा गया है:
निर्दिष्ट संग्रह के unmodifiable दृश्य देता है। यह विधि मॉड्यूल को उपयोगकर्ताओं को "केवल पढ़ने के लिए" आंतरिक संग्रहों तक पहुंच प्रदान करने की अनुमति देती है।
फिर, यदि मैं मूल संग्रह को संशोधित करता हूं तो लक्ष्य-प्रतिलिपि संग्रह भी संशोधित किया जाता है?
शायद मैंने अर्थ को गलत समझा और यदि ऐसा है तो का तरीका क्या है उस संग्रह की रक्षात्मक प्रति लिखें?
यदि आप ए 1 का एक अपरिवर्तनीय संस्करण रखना चाहते हैं तो आप ए 1 क्लोन कर सकते हैं और इसे एक अपरिवर्तनीय सूची बना सकते हैं। फिर ए 1 के अपडेट ए 2 को प्रभावित नहीं करेंगे। –