সমবর্তী হ্যাশম্যাপ হল একটি ক্লাস যা jdk1.5 এ চালু করা হয়েছিল। মানচিত্র যোগ বা আপডেট করার সময় সমবর্তী হ্যাশ মানচিত্র শুধুমাত্র বালতি স্তরে লক প্রয়োগ করে যাকে ফ্র্যাগমেন্ট বলা হয়। সুতরাং, একটি সমসাময়িক হ্যাশ মানচিত্র মানচিত্রটিতে একযোগে পড়া এবং লেখার ক্রিয়াকলাপকে অনুমতি দেয়।
হ্যাশটেবল হল একটি থ্রেড-সেফ লিগ্যাসি ক্লাস যা Jdk1.1-এ চালু করা হয়েছে। এটি মানচিত্র ইন্টারফেসের একটি ভিত্তি বাস্তবায়ন। এটি নাল কী এবং মান অনুমোদন করে না। এটি প্রকৃতিতে সিঙ্ক্রোনাইজ করা হয়েছে তাই দুটি ভিন্ন থ্রেড একসাথে অ্যাক্সেস করতে পারে না। হ্যাশটেবল কোনো শৃঙ্খলা বজায় রাখে না।
| Sr. না. | কী | হ্যাশটেবল | ConcurrentHashMap |
|---|---|---|---|
| 1 | ৷ মৌলিক | HashTable হল Jdk1.1-এ প্রবর্তিত একটি থ্রেড-সেফ লিগ্যাসি ক্লাস | ৷ ConcurrentHashmap হল একটি ক্লাস যা jdk1.5 এ চালু করা হয়েছিল |
| 2 | ৷ লক করা হচ্ছে | ৷ এটি সম্পূর্ণ সংগ্রহে লক প্রয়োগ করে | ৷ মানচিত্র যোগ বা আপডেট করার সময় ConcurrentHashMap শুধুমাত্র বালতি স্তরে লক প্রয়োগ করে যাকে ফ্র্যাগমেন্ট বলা হয় |
| 3 | ৷ কর্মক্ষমতা | এটি ConcurrentHashMap এর চেয়ে ধীর | ৷ এটি হ্যাশটেবলের চেয়ে ভালো |
| 4. | ৷ শূন্য | ৷ এটি নাল কী এবং মান অনুমোদন করে না | ৷ এটি নাল কী এবং মান কে অনুমতি দেয় |
হ্যাশটেবলের উদাহরণ
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());
}
}
} সমবর্তী হ্যাশম্যাপের উদাহরণ
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());
}
}
}