Java में ऐरे स्वाभाविक रूप से परिवर्तनीय होते हैं; आप सीधे उनके तत्वों को अपरिवर्तनीय नहीं बना सकते। हालांकि, आप ऐरे को अनमॉडिफिएबल लिस्ट में बदलकर रीड-ओनली एक्सेस प्राप्त कर सकते हैं।
दृष्टिकोण: Arrays.asList() + Collections.unmodifiableList()
import java.util.*;
public class ImmutableArrayExample {
public static void main(String args[]) {
String[] strArray = {"Raju", "Rama", "Rahman", "Rachel", "Ranbhir", "Rangan"};
// ऐरे को लिस्ट में बदलें
List list = Arrays.asList(strArray);
// अनमॉडिफिएबल व्यू बनाएं
List immutable = Collections.unmodifiableList(list);
System.out.println(immutable);
// संशोधन का प्रयास
immutable.add("komala"); // UnsupportedOperationException
}
} आउटपुट
[Raju, Rama, Rahman, Rachel, Ranbhir, Rangan]
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Unknown Source)महत्वपूर्ण नोट्स
Arrays.asList()एक फिक्स्ड-साइज़ लिस्ट लौटाता है जो मूल ऐरे द्वारा समर्थित है।- लिस्ट के माध्यम से तत्व बदलने से मूल ऐरे प्रभावित होता है।
unmodifiableList()संरचनात्मक संशोधन (add/remove) को रोकता है लेकिन तत्व परिवर्तन को नहीं (यदि तत्व परिवर्तनीय हैं)।- सही अपरिवर्तनीयता के लिए, तत्वों को कॉपी करके एक नई लिस्ट बनाएं:
List.copyOf(Arrays.asList(arr))(Java 10+)