की तुलना में Hashtable
का उपयोग करने का मुख्य लाभ क्या है। क्योंकि, Hashtable
मुख्य लाभ सिंक्रनाइज़ेशन है। अब नक्शा synchronizedMap()
का उपयोग करके सिंक्रनाइज़ भी कर सकता है।हैशटेबल
Map m = Collections.synchronizedMap(hashMap);
की तुलना में Hashtable
का उपयोग करने का मुख्य लाभ क्या है। क्योंकि, Hashtable
मुख्य लाभ सिंक्रनाइज़ेशन है। अब नक्शा synchronizedMap()
का उपयोग करके सिंक्रनाइज़ भी कर सकता है।हैशटेबल
Map m = Collections.synchronizedMap(hashMap);
Hashtable
संग्रह ढांचे से पहले से ही अस्तित्व में है, इसलिए यह मुख्य रूप से पिछली संगतता के लिए रखा जाता है। इसके बजाय ConcurrentHashMap
का उपयोग करें।
ध्यान दें कि थोड़ा सा अर्थपूर्ण अंतर है - Hashtable
नल की अनुमति नहीं देता है, जबकि HashMap
शून्य मानों और शून्य कुंजी की अनुमति देता है।
HashTable
को बहुत समय पहले बहिष्कृत कर दिया गया है। मुख्य अंतर यह है कि HashTable
आंतरिक रूप से सिंक्रनाइज़ किया गया है, जबकि HashMap
नहीं है। हालांकि इसे नुकसान के रूप में देखा जाता है, क्योंकि एक ही थ्रेड पर HashTable
का उपयोग करके लॉकिंग और अनलॉकिंग की सजा होती है जब इसकी आवश्यकता नहीं होती है।
if(key does not exist)
add key
:
इसके अलावा, एक और मुद्दा यह है कि renders HashTable
के तुल्यकालन इतना उपयोगी नहीं तथ्य यह है कि एक दृश्य में दो धागे की सुरक्षित संचालन को क्रियान्वित करने, पूरे अनुक्रम के atomicity की गारंटी नहीं है, उदाहरण के लिए लगता है
जबकि परीक्षण परीक्षण और जोड़ दोनों थ्रेड-सुरक्षित हैं, उपरोक्त निर्माण नहीं है, क्योंकि दूसरा धागा इसे बीच में बाधित कर सकता है। इसलिए, बाहरी सिंक्रनाइज़ेशन वैसे भी आवश्यक है।
जैसे, मैं देख रहा हूँ इतने दिनों में HashTable
उपयोग करने के लिए कोई कारण नहीं है ...
IINM, HashTable के उपयोग वास्तव में हतोत्साहित किया जाता है और आप हमेशा किसी भी नए कोड में HashMap उपयोग करने के लिए प्रयास करना चाहिए। हैशटेबल पुराने कोड के साथ संगतता के लिए बनाए रखा है। – MAK
फिर जावा क्यों हैशटेबल को बर्बाद नहीं करता? – Kushan
हैशटैब ऐसी कोई चीज़ नहीं है, इसे हैशटेबल कहा जाता है और यह संग्रह IFS "प्रागैतिहासिक" (पहले) है। इसकी विधियां सिंक्रनाइज़ होती हैं, हालांकि यह गारंटी नहीं देती है कि हैशटेबल को पॉप्युलेट करने वाली वस्तुओं के संदर्भों को समवर्ती रूप से संशोधित नहीं किया जा सकता है। – aviad