EnumMap JDK5 में पेश किया गया है। यह मैप में Enum को की के रूप में उपयोग करने के लिए डिज़ाइन किया गया है। यह Map इंटरफेस का कार्यान्वयन भी है। EnumMap में सभी की एक ही एनम प्रकार की होनी चाहिए। EnumMap में, की नल नहीं हो सकती और कोई भी NullPointerException फेंक देगा।
जावा डॉक्स के अनुसार -
EnumMap आंतरिक रूप से सरणियों का उपयोग करता है, यह प्रतिनिधित्व अत्यंत कॉम्पैक्ट और कुशल है।
HashMap भी Map इंटरफेस का कार्यान्वयन है। इसका उपयोग डेटा को की और वैल्यू के रूप में स्टोर करने के लिए किया जाता है। इसमें एक नल की और कई नल वैल्यू हो सकती हैं। HashMap में, कीज़ प्रिमिटिव प्रकार की नहीं हो सकती। Java HashMap कार्यान्वयन बुनियादी ऑपरेशन (गेट और पुट) के लिए कॉन्स्टेंट-टाइम प्रदर्शन प्रदान करता है, यह मानते हुए कि हैश फंक्शन एलिमेंट्स को बकेट्स के बीच उचित रूप से फैलाता है।
| क्र. सं. | मुख्य बिंदु | EnumMap | HashMap |
|---|---|---|---|
| 1 | बेसिक | एनम प्रकार की कीज़ के साथ उपयोग के लिए एक विशेष मैप कार्यान्वयन | HashMap भी Map इंटरफेस का कार्यान्वयन है। |
| 2 | नल की | इसमें नल की नहीं हो सकती। | इसमें एक नल की और कई नल वैल्यू हो सकती हैं |
| 3 | प्रदर्शन | सभी ऑपरेशन कॉन्स्टेंट टाइम में निष्पादित होते हैं इसलिए यह HashMap से तेज़ है | यह EnumMap से धीमा है |
| 4 | आंतरिक कार्यान्वयन | यह आंतरिक रूप से सरणी का उपयोग करता है | यह आंतरिक रूप से Hashtable का उपयोग करता है |
| 5 | क्रम | EnumMap कीज़ को उनकी कीज़ के प्राकृतिक क्रम में स्टोर करता है | HashMap क्रमबद्ध नहीं है |
EnumMap का उदाहरण
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
public class EnumMapExample {
public enum LaptopEnum {
HCL, DELL, IBM
};
public static void main(String[] args) {
// एनम मैप बनाएं
EnumMap map = new EnumMap(LaptopEnum.class);
map.put(LaptopEnum.HCL, "100");
map.put(LaptopEnum.DELL, "200");
map.put(LaptopEnum.IBM, "300");
// मैप प्रिंट करें
for (Map.Entry m : map.entrySet()) {
System.out.println(m.getKey() + " " + m.getValue());
}
}
}
HashMap का उदाहरण
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
// हैश मैप बनाएं
Map map = new HashMap();
map.put("HCL", "100");
map.put("DELL", "200");
map.put("IBM", "300");
// मैप प्रिंट करें
for (Map.Entry m : map.entrySet()) {
System.out.println(m.getKey() + " " + m.getValue());
}
}
}