HashMap, TreeMap, LinkedHashMap, Hashtable In Hindi
जावा प्रोग्रामिंग लैंग्वेज में मैप इंटरफ़ेस जावा बिल्ट-इन कलेक्शंस फ्रेमवर्क का इम्पोर्टेन्ट फीचर्स है, और यह जावा यूजर को एक की-वैल्यू पेयर्स वैल्यू एलिमेंट सीक्वेंस आर्डर के एक ग्रुप कलेक्शन को रिप्रेजेंट करता है। इसमें यूज़ हर की-वैल्यू पेयर्स की अपनी एक यूनिक नेचर की होती है, और हर यूजर डिफाइन की ठीक एक वैल्यू से एक्जैक्ट प्रॉपर मैप होती है। इसमें की-वैल्यू पेयर्स मैप इंटरफ़ेस में कॉमन चार यूज़ किए जाने वाले इम्पोर्टेन्ट कांसेप्ट हैं.

Elements of the Java Map interface.
- HashMap
- TreeMap
- LinkedHashMap
- Hashtable
यहाँ ऊपर डिफाइन हर क्लास के अपने स्पेशल फीचर्स और फंक्शन और इनके परफॉर्मेंस इम्पैक्ट और यूज़ के मेथड और प्रोसेस अलग अलग हो सकते हैं।
So, let’s better understand the concepts of HashMap, TreeMap, LinkedHashMap, and Hashtable in Java programming.
HashMap in Java.
जावा लैंग्वेज में HashMap मैप इंटरफ़ेस कॉमन अधिक यूज़ होने वाले कांसेप्ट इम्प्लीमेंटेशन में एक पॉपुलर मेथड है। HashMap कांसेप्ट जावा यूजर को की-वैल्यू पेयर्स आर्डर स्ट्रक्चर को स्टोर करने के लिए हैश टेबल मेथड को यूज़ करता है, और HashMap में यूज़ डिफाइन कीज़ और वैल्यूज़ को एक नल के रूप में अल्लॉव करता है।
Important Features of a Java HashMap.
- No Ordering – यह एक HashMap एंट्रीज़ के लिए कोई स्पेसिफिक स्पेशल ऑर्डर अरेंजमेंट की फीचर्स आर्डर प्रोवाइड नहीं करता है। जावा यूजर HashMap डाटा टाइप में एक नया एलिमेंट्स को ऐड या रिमूव करने पर इसके ऑर्डर मॉडिफाई कर सकता है।
- Allows one null and any number of null values – HashMap जावा प्रोग्रामर को प्रोग्राम में एक नल की और मल्टीप्ल नल वैल्यूज़ की क्रिएट करने की परमिशन प्रोवाइड करता है।
- Efficiency – HashMap जावा यूजर को बेसिक प्रोग्राम ऑपरेशन जैसे, get और put के लिए कॉन्स्टेंट-टाइम कॉम्प्लेक्सिटी (O(1)) फीचर्स प्रोवाइड करता है, यहाँ HashMap में इस तरह ट्रीट करते हुए कि हैश फ़ंक्शन कीज़ को प्रॉपर आर्डर सीक्वेंस में स्प्रेड करता है।
- Not synchronized – याद रहे, जावा में डिफ़ॉल्ट रूप से, यह थ्रेड-सेफ यूज़ नहीं है। यदि जावा प्रोग्रामर को इसे सिंक्रोनाइज़ेशन करने की आवश्यकता है. तो जावा यूजर एक्सटर्नल सिंक्रोनाइज़ेशन को इसमें यूज़ कर सकते है।
Example of a Java HashMap.
import java.util.HashMap;
public class HashMapDataType {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
// here we Adding a new key-value pairs values in HashMap
map.put(“Macbook”, 2);
map.put(“Imac”, 3);
map.put(“Hp Spectre”, 1);
map.put(“Asus Rog”, 4);
map.put(“Macbook”, 5); // here This will overwrite the previous value of “Macbook” hash element
// here it Iterating through the HashMap
for (String key : map.keySet()) {
System.out.println(key + “: ” + map.get(key));
}
// here it Checking if a key exists or not
if (map.containsKey(“Imac”)) {
System.out.println(“Here Imac is available in the map”);
}
// here we Removing a key-value pair
map.remove(“Hp Spectre”);
System.out.println(“After HashMap deletion – ” + map);
}
}
TreeMap in Java.
जावा लैंग्वेज में TreeMap, Map इंटरफ़ेस का एक इम्पोर्टेन्ट फीचर्स या डाटा टाइप रिप्रजेंटेशन मेथड है, जो की TreeMap डाटा टाइप में Red-Black ट्री (एक सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री) कांसेप्ट को फॉलो करता है। यहाँ TreeMap डाटा टाइप में कीज़ को उनके नेचुरल अरेंजमेंट के अकॉर्डिंग या TreeMap एलिमेंट क्रिएशन के समय प्रोवाइड किए गए Comparator के अकॉर्डिंग सॉर्टेड ऑर्डर में स्टोर या मेन्टेन करता है।
Important Features of Java TreeMap.
- Sorted – जावा प्रोग्राम में एक TreeMap डिफ़ॉल्ट रूप से इनक्रीस सीक्वेंस आर्डर में कीज़ इनफार्मेशन को स्टोर करता है, तुलनात्मक कीज़ डाटा वैल्यूज एनालिसिस के लिए।
- Logarithmic Time Complexity – जावा TreeMap में ऐड, रिमूव और गेट जैसे प्रोग्राम ऑपरेशन्स की टाइम कॉम्प्लेक्सिटी O(log n) डिफाइन होती है, जिसमे की इसके अंदर का ट्री स्ट्रक्चर कुछ इस तरह रिप्रेजेंट होता है।
- No Null Keys – याद रहे, जावा में TreeMap नल कीज़ की परमिशन अल्लॉव नहीं करता है, जबकि यह आपको नल वैल्यू की परमिशन प्रोवाइड करता है।
- Not Synchronized – जावा प्रोग्राम में HashMap लिस्ट डाटा टाइप की तरह, TreeMap सिंक्रोनाइज़्ड फीचर्स प्रोवाइड नहीं करता है।
Instance of Java TreeMap.
import java.util.TreeMap;
public class TreeMapDataType {
public static void main(String[] args) {
TreeMap<String, Integer> map = new TreeMap<>();
// here we Adding a new TreeMap key-value pairs
map.put(“Macbook”, 2);
map.put(“Imac”, 3);
map.put(“Hp Spectre”, 1);
map.put(“Asus Rog”, 4);
map.put(“Asus Tuf”, 5);
// here it Iterating through the TreeMap/sorted order manner
for (String key : map.keySet()) {
System.out.println(key + “: ” + map.get(key)); // the result will be in sorted order
}
// here it Checking if a key exists r not
if (map.containsKey(“Imac”)) {
System.out.println(“here Imac model available in the map”);
}
// here it Removing a key-value pair
map.remove(“Hp Spectre”);
System.out.println(“After TreeMap element deletion – ” + map);
}
}
LinkedHashMap in Java.
जावा प्रोग्रामिंग में LinkedHashMap, Map इंटरफ़ेस डाटा टाइप का एक इम्पॉटेंट डाटा इनफार्मेशन रिप्रजेंटेशन मेथड है, जो की एक हैश टेबल को एक लिंक्ड लिस्ट के साथ कंनेक्ट करता है। LinkedHashMap यूज़ कीज़ के इंसर्शन सीक्वेंस ऑर्डर को मेन्टेन करता है. इसका मतलब है कि LinkedHashMap एलिमेंट्स का ऑर्डर उसी तरह से बना रहता है, जिस तरह से उसे क्रिएट किया गया है. जैसे, उन्हें LinkedHashMap मैप में यूजर द्वारा ऐड किया गया था।
Important Features of LinkedHashMap in Java.
- Insertion Order – HashMap डाटा मैप के अपोजिट, LinkedHashMap डाटा वैल्यू इंसर्शन ऑर्डर के आधार पर कीज़ का ऑर्डर मेन्टेन करता है।
- Efficiency – LinkedHashMap बेसिक प्रोग्राम ऑपरेशन जैसे, HashMap के लिए कॉन्स्टेंट-टाइम कॉम्प्लेक्सिटी (O(1)) फीचर्स प्रोवाइड करता है. जबकि यहाँ LinkedHashMap डाटा एलिमेंट इंसर्शन ऑर्डर को मेन्टेन करने के लिए एक एक्स्ट्रा ओवरहेड भी यूज़ होता है।
- Allows Null Keys and Values – HashMap डाटा टाइप की तरह, LinkedHashMap जावा यूजर को एक नल की और मल्टीप्ल नल वैल्यू की परमिशन प्रोवाइड करता है।
- Not Synchronized – जावा प्रोग्राम में HashMap और TreeMap की के जैसे, LinkedHashMap में सिंक्रोनाइज़्ड फीचर्स नहीं है।
Java LinkedHashMap Example.
import java.util.TreeMap;
public class TreeMapDataType {
public static void main(String[] args) {
TreeMap<String, Integer> map = new TreeMap<>();
// here we Adding a new TreeMap key-value pairs
map.put(“Macbook”, 2);
map.put(“Imac”, 3);
map.put(“Hp Spectre”, 1);
map.put(“Asus Rog”, 4);
map.put(“Asus Tuf”, 5);
// here it Iterating through the TreeMap/sorted order manner
for (String key : map.keySet()) {
System.out.println(key + “: ” + map.get(key)); // the result will be in sorted order
}
// here it Checking if a key exists or not
if (map.containsKey(“Imac”)) {
System.out.println(“here Imac model available in the map”);
}
// here it Removing a key-value pair
map.remove(“Hp Spectre”);
System.out.println(“After TreeMap element deletion – ” + map);
}
}
Hashtable in Java.
जावा प्रोग्रामिंग में हैशटेबल, मैप इंटरफ़ेस का एक ओल्ड डाटा टाइप का एक इम्पॉटेंट डाटा इनफार्मेशन रिप्रजेंटेशन मेथड है, जो की हैशमैप डाटा टाइप के जैसा ही है. लेकिन इसमें कुछ डिफ्रेंस हैं। हैशटेबल जावा प्रोग्राम में की-वैल्यू पेयर को स्टोर करने के लिए हैश टेबल का यूज़ करता है, और जावा प्रोग्रामिंग में यह एक बिल्ट-इन ओरिजिनल वर्जन का पार्ट था।
Important Features of Java Hashtable.
- Synchronized – जावा हैशमैप डाटा टाइप के अपोजिट, हैशटेबल सिंक्रोनाइज़्ड नेचर का होता है, इसलिए यह एक थ्रेड-सेफ मेथड है. लेकिन यह सिंगल-थ्रेडेड एप्लिकेशन में स्लो हो जाता है।
- No Null Keys or Values – जावा हैशटेबल, हैशमैप और लिंक्डहैशमैप के अपोजिट, नल की या वैल्यू की परमिशन प्रोवाइड करता है।
- Legacy Class – जावा में हैशटेबल को एक लेगेसी क्लास के रूप में ट्रीट किया जाता है, और यहाँ जावा यूजर को सामान्यता मॉडर्न जावा एप्लिकेशन में इसके यूज़ करने की सलाह नहीं दी जाती है, जब तक जावा यूजर को कि थ्रेड सेफ्टी की स्पेशल जरूरत न हो।
- Slow Performance – जावा में सिंक्रोनाइज़ेशन ओवरहेड के कारण, Hashtable सामान्य रूप से HashMap और LinkedHashMap से स्लो परफॉर्म करता है।
Example of Java Hashtable.
import java.util.Hashtable;
public class HashtableDataType {
public static void main(String[] args) {
Hashtable<String, Integer> map = new Hashtable<>();
// here we Adding a new key-value pairs in Hashtable
map.put(“Macbook”, 2);
map.put(“Imac”, 3);
map.put(“Hp Spectre”, 1);
map.put(“Asus Rog”, 4);
map.put(“Asus Tuf”, 5);
// here it Iterating through the Hashtable element
for (String key : map.keySet()) {
System.out.println(key + “: ” + map.get(key));
}
// here it Checking if a key exists in Hashtable
if (map.containsKey(“Imac”)) {
System.out.println(“Imac is availabele in the Hashtable map”);
}
// here we Removing a key-value pair in Hashtable
map.remove(“Hp Spectre”);
System.out.println(“After deletion element in Hashtable – ” + map);
}
}
Difference between HashMap, TreeMap, LinkedHashMap, and Hashtable.
| Each Feature | HashMap data type | TreeMap data type | LinkedHashMap data type | Hashtable data type |
| Its Ordering | HashMap data type No following any ordering default unordered status | TreeMap data type use Sorted method ascending sequence order | LinkedHashMap data type follow Insertion order method | Hashtable data type follow No ordering unordered data structure |
| Null Keys/Values availability | HashMap Allows user to use one null key and multiple null values in data element when need | TreeMap Does not allow any null keys, but it allows null values whenever user need | LinkedHashMap Allows one null key and multiple null values whenever user need | Hashtable Does not allow null keys or values in program |
| Thread-Safety features | HashMap does Not support synchronized features | TreeMap Does not allow synchronized concept | LinkedHashMap Not allow synchronized method | Hashtable allow Synchronized for (thread-safe) features |
| Time Complexity in use | HashMap is O(1) (average case) according to use | TreeMap use O(log n) time complexity features | LinkedHashMap usages O(1) (average case) | Hashtable usages O(1) (average case) |
| Where to Use Case | HashMap is Best for fast data lookups, ew data insertions, and remove existing data without concern for order | TreeMap Best for storing sorted keys and fast searching data value | LinkedHashMap Best choice when new data insertion order is essential | Hashtable usages When thread-safety is essential though ConcurrentHashMap is a better alternative method |
| System Performance | HashMap Faster than TreeMap and Hashtable map data type | TreeMap data type is Slower than HashMap and LinkedHashMap due to sorting order | LinkedHashMap is Slightly slower than HashMap due to maintaining insertion data element order | Hashtable is Slower than HashMap data type due to synchronization overhead features |
Java HashMap, TreeMap, LinkedHashMap, and Hashtable Summary.
- HashMap – जावा प्रोग्रामिंग में HashMap का यूज़ तब किया जाता है, जब जावा यूजर को की-वैल्यू पेयर का फ़ास्ट, अनऑर्डर्ड की मैप वर्जन चाहिए और यूजर को उसमे थ्रेड सेफ़्टी की ज़रूरत न हो।
- TreeMap – जावा प्रोग्रामिंग में TreeMap को तब यूज़ किया जाता है, जब जावा यूजर को TreeMap कीज़ को स्पेसिफिक आर्डर सीक्वेंस में सॉर्ट कर डिस्प्ले करना हो, या जब जावा यूजर को TreeMap कीज़ के सीक्वेंस के आधार पर प्रोग्राम ऑपरेशन करने हों।
- LinkedHashMap – जावा प्रोग्रामिंग में LinkedHashMap को तब यूज़ किया जाता है, जब जावा यूजर को नई डाटा एलिमेंट के इंसर्शन ऑर्डर को मेन्टेन रखना हो और फ़ास्ट डाटा एक्सेस, रिमूवल, और इंसर्शन ऑपरेशन की ज़रूरत हो।
- Hashtable – जावा प्रोग्रामिंग में Hashtable को तब यूज़ किया जाता है, जब आपको थ्रेड-सेफ़्टी की स्पेसिफिक ज़रूरत हो और ConcurrentHashMap जैसे कोई नए ऑप्शन अप्लाई न हों। जावा प्रोग्रामिंग में हैशटेबल आज के समय ओल्ड हो चुका है, और हैशटेबल को नए बड़े जावा प्रोजेक्ट्स में रिकमेंड नहीं किया जाता है।
