शब्दकोश और हैशटेबल के बीच का अंतर

Anonim

शब्दकोश बनाम हैशटेबल

शब्दकोष के बारे में एक अच्छा तरीका है (एसओ वैल्यूमेटिव्स की आवश्यकता नहीं है), एक हैशटेबल (एसओ वैलटाइमेट्स को बोक्सिंग की आवश्यकता है)। हैशटेबल में आईएमएचओएएम की तुलना में एक मूल्य के बारे में एक अच्छा तरीका है, क्योंकि यह हमेशा मान देता है कि एक ऑब्जेक्ट है यदि आप उपयोग कर रहे हैं तो नेट 3 है। 5, इसी तरह के व्यवहार को प्राप्त करने के लिए शब्दकोश के लिए एक extension मील लिखने के लिए आसान है।

हैशटेबल क्लास एक विशिष्ट प्रकार का शब्दकोश वर्ग है जो एक पूर्णांक मान (एक हैश कहलाता है) का उपयोग करता है जो कि उसकी चाबियाँ के ढलान में सहायता करता है हैशटेबल क्लास हैश का इस्तेमाल करता है जो कि सिलिकॉन में विशिष्ट कुंजी के लिए खोज को तेज करता है। ओब्जेक्ट क्लास से प्रत्येक ऑब्जेक्ट एनआईटी निकला है। यह क्लास GetHash मेथोड प्रस्तुत करता है, जो एक पूर्णांक देता है जो विशिष्ट रूप से ऑब्जेक्ट को पहचानता है। हैशटेबल श्रेणी सामान्य रूप से एक बहुत ही कुशल सूची है। हैशटेबल क्लास के साथ एक ही मुद्दा यह है कि उसे थोड़ा सा आकार की आवश्यकता होती है, और छोटी से छोटी चुनौतियों के लिए (कम से कम 10 तत्व), ओवरहेड परिष्कृत हो सकते हैं।

एक हैशटेबल और डिक्शनरी के बीच अंतर बहुत अधिक है अगर आपने इंडिकेटर को एक हैशटेबल के बाहर मान प्राप्त करने के लिए प्रयोग किया है, तो हैशटेबल सफलतापूर्वक किसी नॉन-एक्सब्सेंट आइटम के लिए रिक्त स्थान वापस कर देगा, जबकि डिक्शनरी में कोई गलती नहीं होगी, यदि आप किसी इंडेक्सर का उपयोग करके उस आइटम को एक्सेस करने का प्रयास करेंगे जो डिक्शनरी में मौजूद नहीं है।

हॅशटेबल आधार वर्ग है जो कमजोर ढंग से टाइप किया गया है; शब्दकोशबेस के सार वर्ग को स्ट्रोकली टाइप किया गया है और आंतरिक रूप से एक हैशटेबल का उपयोग करता है

एक अजीब बात यह है कि जब हम शब्दकोश में कई प्रविष्टियां जोड़ते हैं, तो उस शब्द का आशय है, जिसमें प्रविष्टियों को जोड़ दिया गया है उसमें बनाए रखा गया है। इस प्रकार यदि आप डिक्शनरी पर एक फ़ौरन लागू करते हैं, तो आपको उसी ऑर्डर में पुनः प्राप्त किया जाएगा जो आपने उन्हें डाला है। जबकि, यह हाशटैबल के साथ सही नहीं है, जब आप हाशटेबल में एक ही रिकॉर्ड्ज जोड़ते हैं तो ऑर्डर नहीं होता है। अगर 'हाशेट पर शब्दकोश आधारित है' सच है, क्यों शब्दकोश में अन्यथा रखता है, लेकिन हैशटेबल न हो?

जैसा कि वे अलग तरह से व्यवहार करते हैं, ऐसा इसलिए है क्योंकि जेनेरिक शब्दकोश एक हैशटेबल लागू करता है, लेकिन सिस्टम पर आधारित नहीं है। Cоllectiоns। हैश टेबल। जेनेरिक शब्दकोश क्रियान्वयन एक सूची से सभी-मूल्य वाली कुंजी-मूल्य-जोड़े पर आधारित है। इन्हें रैंडोम एक्सेस के लिए हैशटेबल बाल्टी के साथ अनुक्रमित किया गया है, लेकिन जब यह एक एनमेरेटोर देता है, तो यह केवल अनुक्रमिक ऑर्डर में सूची चलता है - जो कि प्रविष्टियों को फिर से उपयोग न करने के रूप में शामिल किया जाएगा।