2011-03-03 13 views
5

के बीच प्राथमिक अंतर क्या है शब्दकोश और हैशटेबल के बीच क्या अंतर है। मैं किस निष्कर्ष पर उपयोग कर सकता हूं? क्या कोई मेरी मदद कर सकता है?डिक्शनरी और हैशटेबल

+3

http://stackoverflow.com/questions/301371/why-dictionary-is-preferred-over-hashtable-in-c – Douglas

+0

देखें नीचे समान प्रश्न: http://stackoverflow.com/questions/1089132/net- हैशटेबल-बनाम-डिक्शनरी-कैन-द-डिक्शनरी-ए-तेज़ –

उत्तर

6

डिक्शनरी कक्षा हैशटेबल कक्षा से एक से अधिक तरीकों से अलग है। दृढ़ता से टाइप किया जा रहा करने के अलावा, शब्दकोश भी एक विभिन्न टक्कर संकल्प रणनीति Hashtable वर्ग की तुलना में, कार्यरत एक तकनीक श्रृंखलन रूप में जाना जाता का उपयोग कर।

आप इस लेख पढ़ सकते हैं: http://msdn.microsoft.com/en-us/library/ms379571(v=vs.80).aspx#datastructures20_2_topic6

यह वास्तव में उपयोगी है।

+0

लिंक उपयोगी है ... – Prateek

1

हैशटेबल अप्रचलित है। हमेशा शब्दकोश का प्रयोग करें।

1

मैं hashtables में नौसिखिया हूँ भी, लेकिन ...

शब्दकोश दो कॉलम के साथ एक बुनियादी तालिका है (कुंजी और मूल्य, दोनों कुछ प्रकार है) और बहुत पंक्तियों की आप बाद में जोड़ें। आप देखेंगे कि शब्दकोश में आप एक कुंजी देते हैं और डिक्शनरी आपको वैल्यू देता है जिसे आपने पहले उसी कुंजी से जोड़ा था।

हैशटेबल चीजों में थोड़ा अलग है। आपके पास दो स्तंभों के साथ तालिका है (कुंजी और मान, दोनों "ऑब्जेक्ट" प्रकार हैं)। चाबियाँ अद्वितीय नहीं हो सकती हैं। अब आप वर्चुअल के पास दो टेबल हैं: एक दो कॉलम के साथ: कुंजी और हैश, और दूसरा दो कॉलम हैश और वैल्यू के साथ। हैश कुछ पूर्णांक मान कुंजी से मिला है। यह पता चला है कि कुंजी अद्वितीय हो सकती है, हैश हो सकता है। [अभी तक मैं इस बारे में निश्चित नहीं हूँ ... तो मैं "virtualy" कहा ...]

अब उदाहरण:

Hashtable ht = new Hashtable(); 
// Key of type Int32 
ht[16] = "That is Int32"; 
// Key of type String 
ht["Blah"] = 15; 
// Key of type Boolean 
ht[false] = "That is boolean"; 
// Key of type String 
ht["Hohoho"] = false; 

और बाद में आप में Hashtable सिर्फ कुंजियों का उपयोग संग्रहीत किसी भी मूल्य का उपयोग कर सकते (यदि ऐसी कोई महत्वपूर्ण हैं यह शून्य रिटर्न):

Console.WriteLine("ht[{0}] = {1};", 16, ht[16] ?? "null"); 
Console.WriteLine("ht[{0}] = {1};", "Test", ht["Test"] ?? "null"); // doesnt exist eh... 
Console.WriteLine("ht[{0}] = {1};", false, ht[false] ?? "null"); 
Console.WriteLine("ht[{0}] = {1};", "Hohoho", ht["Hohoho"] ?? "null"); 

sumarize करने के लिए:

:

शब्दकोश यह है

[ Key ][ Hash ] 
    A  1 
    B  2 
    C  -99 
     ... 

[ Hash ][ Value ] 
    -99  -8 
    1  1.6 
    2  1.5 
     .... 

मुझे आशा है कि यह कुछ भी उपयोगी है:

[ Key ][ Value ] 
    A  1.5 
    B  1.6 
    C  -8 
    .... 

और Hashtable probabily यह है। कोई भी जो इसे बेहतर समझा सकता है, ऐसा करने में संकोच नहीं करें।

धन्यवाद और शुभकामनाएं।

संबंधित मुद्दे