1) अगर नक्शा अपरिवर्तनीय हो सकता है:
Collections.emptyMap()
// or, in some cases:
Collections.<String, String>emptyMap()
आपको कभी-कभी बाद का उपयोग करना होगा जब कंपाइलर स्वचालित रूप से यह पता नहीं लगा सकता है कि किस तरह के मानचित्र की आवश्यकता है (इसे प्रकार का निष्कर्ष कहा जाता है )। उदाहरण के लिए, इस तरह घोषित एक विधि पर विचार करें:
public void foobar(Map<String, String> map){ ... }
खाली मैप को सीधे पास करते समय, आपको टाइप के बारे में स्पष्ट होना होगा:
foobar(Collections.emptyMap()); // doesn't compile
foobar(Collections.<String, String>emptyMap()); // works fine
2) यदि आपको मानचित्र को संशोधित करने में सक्षम होना है, तो उदाहरण के लिए:
new HashMap<String, String>()
(जैसा कि तहबलन ने बताया )
परिशिष्ट : यदि आपकी परियोजना अमरूद का उपयोग करती है , तो आपके पास निम्नलिखित विकल्प हैं:
1) अपरिवर्तनीय नक्शा:
ImmutableMap.of()
// or:
ImmutableMap.<String, String>of()
दी गई तुलना में यहाँ कोई बड़ा लाभ नहीं है Collections.emptyMap()
। जावदोक से :
यह मानचित्र व्यवहार करता है और तुलनात्मक रूप से करता है Collections.emptyMap()
, और आपके कोड की स्थिरता और स्थिरता के लिए मुख्य रूप से बेहतर है।
2) नक्शा जिसे आप संशोधित कर सकते हैं:
Maps.newHashMap()
// or:
Maps.<String, String>newHashMap()
Maps
अन्य प्रकार के नक्शों को तात्कालिक बनाने के लिए समान फैक्ट्री विधियाँ शामिल हैं, जैसे कि TreeMap
या LinkedHashMap
।
अपडेट (2018) : जावा 9 या नए पर, एक अपरिवर्तनीय खाली नक्शा बनाने के लिए सबसे छोटा कोड है:
Map.of()
... JEP 269 से नई सुविधा कारखाना विधियों का उपयोग करना । 😎