HashTable और Dictionary दोनों डेटा संग्रहण के लिए उपयोग की जाने वाली डेटा संरचना के प्रकार हैं। ये दोनों डेटा संरचनाएं संग्रहीत डेटा को कुंजी-मान जोड़ी में रखती हैं।
इनकी प्रमुख विशेषताओं के बीच अंतर के आधार पर हम HashTable और Dictionary के बीच निम्नानुसार अंतर कर सकते हैं:
| क्र.सं. | मुख्य बिंदु | HashTable | Dictionary |
|---|---|---|---|
| 1 | परिभाषा | HashTable नॉन-जेनेरिक प्रकार का संग्रह है जिसका उपयोग कुंजी/मान जोड़ी में डेटा संग्रहीत करने के लिए किया जाता है और यह System.Collections नेमस्पेस में परिभाषित है। | दूसरी ओर Dictionary एक जेनेरिक प्रकार का संग्रह है जिसे System.Collection.Generics नेमस्पेस के तहत परिभाषित किया गया है जो डेटा को कुंजी/मान जोड़ी के रूप में भी संग्रहीत करता है। |
| 2 | डेटा प्रकार | HashTable में समान या अलग डेटा प्रकार का डेटा कुंजी और मान के रूप में संग्रहीत किया जा सकता है, ऐसी कोई पाबंदी नहीं है कि कुंजी और मान समान डेटा प्रकार के होने चाहिए तभी HashTable में संग्रहीत हो सकते हैं। साथ ही कुंजी और मान के प्रकार को निर्दिष्ट करने की कोई आवश्यकता नहीं है। | दूसरी ओर Dictionary के मामले में कुंजी और मान समान डेटा प्रकार के होने चाहिए तभी Dictionary में संग्रहीत हो सकते हैं और निर्माण के समय कुंजी और मान का प्रकार निर्दिष्ट करना आवश्यक है। |
| 3 | डेटा पुनर्प्राप्ति | HashTable के मामले में बॉक्सिंग और अनबॉक्सिंग के कारण डेटा पुनर्प्राप्ति Dictionary की तुलना में धीमी है। | दूसरी ओर Dictionary के मामले में डेटा पुनर्प्राप्ति तेज है क्योंकि Dictionary के मामले में कोई बॉक्सिंग और अनबॉक्सिंग नहीं होती। |
| 4 | नल मान | HashTable के मामले में नल मान को इस प्रकार संभाला जाता है कि यदि दिए गए HashTable में मौजूद नहीं होने वाली कुंजी को एक्सेस किया जाए तो परिणाम के रूप में नल मान लौटाए जाते हैं। | दूसरी ओर, Dictionary के मामले में यदि दिए गए Dictionary में मौजूद नहीं होने वाली कुंजी को एक्सेस करने का प्रयास किया जाए तो यह त्रुटि देगा। |
| 5 | डेटा क्रम | HashTable डाले गए कुंजी-मान डेटा के किसी भी क्रम को बनाए नहीं रखता। | दूसरी ओर Dictionary संग्रहीत मान के सम्मिलन क्रम को बनाए रखता है। |