কম্পিউটার টিউটোরিয়াল

জাভায় EnumMap এবং HashMap-এর পার্থক্য

EnumMap JDK 5-এ চালু করা হয়েছিল। এটি Map-এ Enum কি (key) হিসেবে ব্যবহার করার জন্য ডিজাইন করা হয়েছে। এটি Map ইন্টারফেসের ইমপ্লিমেন্টেশন। EnumMap-এ সব কি একই enum টাইপের হতে হবে। EnumMap-এ কি নাল হতে পারে না, কোনো নাল কি থাকলে NullPointerException থ্রো করবে।

জাভা ডক্স অনুযায়ী:

EnumMap ইন্টারনালি অ্যারে ব্যবহার করে, এই রিপ্রেজেন্টেশন অত্যন্ত কম্প্যাক্ট এবং দক্ষ।

HashMapও Map ইন্টারফেসের ইমপ্লিমেন্টেশন। এটি ডেটা কি ও ভ্যালু ফর্মে সংরক্ষণ করতে ব্যবহৃত হয়। এতে একটি নাল কি এবং একাধিক নাল ভ্যালু থাকতে পারে। HashMap-এ কি প্রিমিটিভ টাইপ হতে পারে না। Java HashMap ইমপ্লিমেন্টেশন বেসিক অপারেশন (get এবং put) এর জন্য কনস্ট্যান্ট-টাইম পারফরম্যান্স প্রদান করে, ধরে নিলে হ্যাশ ফাংশন এলিমেন্টগুলো বাকেটগুলোর মধ্যে সঠিকভাবে ডিসপার্স করে।

Sr. No. Key EnumMap HashMap

1

Basic

Enum টাইপ কি ব্যবহারের জন্য স্পেশালাইজড Map ইমপ্লিমেন্টেশন

HashMap Map ইন্টারফেসের ইমপ্লিমেন্টেশন

2

Null Key

নাল কি থাকতে পারে না

একটি নাল কি এবং একাধিক নাল ভ্যালু থাকতে পারে

3

Performance

সকল অপারেশন কনস্ট্যান্ট টাইমে এক্সিকিউট হয় তাই HashMap-র চেয়ে দ্রুত

EnumMap-র চেয়ে ধীর

4

Internal Implementation

ইন্টারনালি অ্যারে ব্যবহার করে

ইন্টারনালি হ্যাশটেবিল ব্যবহার করে

5

Ordering

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) {
        // create enum map
        EnumMap map = new EnumMap(LaptopEnum.class);
        map.put(LaptopEnum.HCL, "100");
        map.put(LaptopEnum.DELL, "200");
        map.put(LaptopEnum.IBM, "300");
        // print the map
        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) {
        // create Hash map
        Map map = new HashMap();
        map.put("HCL", "100");
        map.put("DELL", "200");
        map.put("IBM", "300");
        // print the map
        for (Map.Entry m : map.entrySet()) {
            System.out.println(m.getKey() + " " + m.getValue());
        }
    }
}
  1. জাভাতে Serialization এবং Externalization-এর পার্থক্য

  2. জাভাতে ConcurrentHashMap এবং Synchronized HashMap-এর পার্থক্য

  3. জাভাতে Iterator এবং Enumeration-এর পার্থক্য

  4. জাভাতে ArrayList এবং HashSet-এর পার্থক্য