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

জাভায় HashTable এবং ConcurrentHashMap-এর পার্থক্য

ConcurrentHashMap হলো JDK 1.5-এ চালু একটি ক্লাস। ConcurrentHashMap শুধু বাকেট লেভেলে লক প্রয়োগ করে যাকে ফ্র্যাগমেন্ট বলা হয়, ম্যাপে এলিমেন্ট যোগ বা আপডেট করার সময়। তাই ConcurrentHashMap ম্যাপে কনকারেন্ট রিড ও রাইট অপারেশন অনুমতি দেয়।

HashTable হলো একটি থ্রেড-সেফ লিগেসি ক্লাস যা JDK 1.1-এ চালু করা হয়েছিল। এটি Map ইন্টারফেসের বেস ইমপ্লিমেন্টেশন। এটি নাল কি ও ভ্যালু অনুমতি দেয় না। এটি সিনক্রোনাইজড স্বভাবের তাই দুটি আলাদা থ্রেড সিমালটেনিয়াসলি এক্সেস করতে পারে না। Hashtable কোনো অর্ডার মেইন্টেইন করে না।

Sr. No. Key HashTable ConcurrentHashMap

1

Basic

HashTable হলো JDK 1.1-এ চালু একটি থ্রেড-সেফ লিগেসি ক্লাস

ConcurrentHashMap হলো JDK 1.5-এ চালু একটি ক্লাস

2

Locking

পুরো কালেকশনে লক প্রয়োগ করে

ConcurrentHashMap শুধু বাকেট লেভেলে (ফ্র্যাগমেন্ট) লক প্রয়োগ করে যোগ বা আপডেট করার সময়

3

Performance

ConcurrentHashMap-র চেয়ে ধীর

HashTable-র চেয়ে ভাল পারফরম্যান্স

4

Null

নাল কি ও ভ্যালু অনুমতি দেয় না

নাল কি ও ভ্যালু অনুমতি দেয়

Hashtable উদাহরণ

import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;

public class HashtableExample {
    public static void main(String[] args) {
        // create Hashtable
        Hashtable map = new Hashtable();
        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());
        }
    }
}

ConcurrentHashMap উদাহরণ

import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ConcurrentHashMapExample {
    public static void main(String[] args) {
        // ConcurrentHashMap
        Map myMap = new ConcurrentHashMap();
        myMap.put("HCL", "1");
        myMap.put("DELL", "1");
        // print the map
        for (Map.Entry m : map.entrySet()) {
            System.out.println(m.getKey() + " " + m.getValue());
        }
    }
}
  1. জাভাতে ConcurrentHashMap এবং Synchronized HashMap-এর পার্থক্য

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

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

  4. tkinter এবং Tkinter-এর পার্থক্য