Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा में EnumMap और HashMap में अंतर

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());
        }
    }
}
  1. - जावा में ConcurrentHashMap और Synchronized HashMap के बीच अंतर

    ConcurrentHashMap एक क्लास है जिसे JDK 1.5 में पेश किया गया था। ConcurrentHashMap मैप में जोड़ते या अपडेट करते समय केवल बकेट लेवल पर लॉक लगाता है जिसे फ्रैगमेंट कहा जाता है। इसलिए, ConcurrentHashMap मैप पर कनकरेंट रीड और राइट ऑपरेशन की अनुमति देता है। Synchronized HashMap (Collections.synchronizedM

  1. - जावा में Iterator और Enumeration के बीच अंतर

    Iterator और Enumeration दोनों कलेक्शन से एलिमेंट्स को ट्रैवर्स और एक्सेस करने के लिए कर्सर हैं। वे दोनों कलेक्शन फ्रेमवर्क से संबंधित हैं। Enumeration JDK 1.0 में जोड़ा गया था और Iterator JDK 1.2 वर्जन में कलेक्शन फ्रेमवर्क में जोड़ा गया। Enumeration कलेक्शन में स्ट्रक्चरल चेंज नहीं कर सकता क्योंकि

  1. - Java में ArrayList और HashSet के बीच अंतर

    HashSet और ArrayList दोनों Java कलेक्शन फ्रेमवर्क के सबसे महत्वपूर्ण क्लासेस में से कुछ हैं।ArrayList और HashSet के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्रमांकमुख्य बिंदुArrayListHashSet1कार्यान्वयनArrayList लिस्ट इंटरफेस का कार्यान्वयन है।दूसरी ओर HashSet सेट इंटरफेस का कार्यान्वयन है।2आंतरिक कार्या