एक अपरिवर्तनीय मानचित्र वह है जिसकी कुंजी और मान जोड़ा नहीं जा सकता , हटाया गया , या अपडेट किया गया एक बार मानचित्र का अपरिवर्तनीय उदाहरण बन जाने के बाद। स्थिर फ़ैक्टरी विधियाँ:Map.of() और Map.ofEntries() मानचित्र से जो Java 9 . में अपरिवर्तनीय मानचित्र बनाने का एक सुविधाजनक तरीका प्रदान करता है ।
Map.of() . का उपयोग करके बनाए गए मानचित्र का एक उदाहरण और Map.ofEntries() विधियों में निम्नलिखित विशेषताएं हैं।
- फ़ैक्टरी विधियों द्वारा लौटाया गया नक्शा पारंपरिक रूप से अपरिवर्तनीय . है . इसका मतलब है कि कुंजी और मान जोड़ा नहीं जा सकता , हटाया गया , या अपडेट किया गया . मैप पर किसी भी म्यूटेटर विधि को कॉल करने से असमर्थित ऑपरेशन अपवाद . होता है ।
- यदि निहित कुंजी/मान मानचित्र के स्वयं परिवर्तनीय . होते हैं , इससे मानचित्र का व्यवहार असंगत . हो सकता है y या इसकी सामग्री बदलती हुई दिखाई देगी।
- एक अपरिवर्तनीय नक्शा शून्य की अनुमति नहीं देता है कुंजी और मान . यदि शून्य कुंजियों या मानों के साथ बनाने का कोई प्रयास किया जाता है, तो यह NullPointerException . फेंकता है ।
- द डुप्लिकेट कुंजी सृष्टि के समय ही खारिज कर दिया जाता है। एक स्थिर फ़ैक्टरी विधि में डुप्लिकेट कुंजियों को पास करने से IllegalArgumentException . का कारण बनता है ।
- अपरिवर्तनीय नक्शे धारावाहिक . हैं यदि सभी कुंजियाँ और मान क्रमबद्ध हैं।
- मैपिंग के पुनरावृति का क्रम अनिर्दिष्ट . है और परिवर्तन के अधीन है।
सिंटैक्स
Map.of(k1, v1, k2, v2) Map.ofEntries(entry(k1, v1), entry(k2, v2),...)
Map.of() का उदाहरण
import java.util.Map; public class UnmodifiableMapTest { public static void main(String[] args) { Map<String, String> empMap = Map.of("101", "Raja", "102", "Adithya", "103", "Jai", "104", "Chaitanya"); System.out.println("empMap - " + empMap); empMap.put("105", "Vamsi"); // throws UnsupportedOperationException } }
आउटपुट
empMap - {104=Chaitanya, 103=Jai, 102=Adithya, 101=Raja} Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.ImmutableCollections.uoe(Unknown Source) at java.base/java.util.ImmutableCollections$AbstractImmutableMap.put(Unknown Source) at UnmodifiableMapTest.main(UnmodifiableMapTest.java:7)
Map.ofEntries()
. का उदाहरणimport java.util.Map; import static java.util.Map.entry; public class UnmodifidMapTest { public static void main(String[] args) { Map<String, String> empMap = Map.ofEntries(entry("101", "Raja"), entry("102", "Adithya"), entry("103", "Jai"), entry("104", "Chaitanya")); System.out.println("empMap - " + empMap); } }
आउटपुट
empMap - {102=Adithya, 101=Raja, 104=Chaitanya, 103=Jai}