2009-04-02 17 views
13

मेरी समझ यह है कि शब्दकोश में मुक्केबाजी के मुद्दे और faster in performance नहीं हैं। क्या ऐसे मामले हैं जो हैशटेबल का उपयोग शब्दकोश की तुलना में अधिक सलाहदायक होगा? धन्यवादहैशटेबल बनाम शब्दकोश

उत्तर

20

.NET 2.0 के लिए, आप बहुत अधिक शब्दकोश चाहते हैं। हालांकि, चेतावनी दी जानी चाहिए कि यह मौजूदा हैशटेबल के लिए सिर्फ "प्रतिस्थापन में गिरावट" नहीं है। वे जिस तरह से काम करते हैं (ज्यादातर वे कैसे नल को संभालते हैं) में कुछ मतभेद हैं जिसका मतलब है कि आपको पहले अपना कोड जांचना होगा।

+5

+1 नल के हैंडलिंग का उल्लेख करने के लिए। यह समझाने के लिए अच्छा हो सकता है कि जब कुंजी में कोई कुंजी मौजूद नहीं है तो शून्य के बजाय अपवाद प्राप्त करने के लिए थोड़ा अप्रत्याशित हो सकता है। –

14

Hashtable काफी ज्यादा बहिष्कृत है। यह विरासत कोड के साथ इंटरफेसिंग के लिए उपयोगी हो सकता है।

DictionarySystem.Collections.Generic नामस्थान में अन्य कक्षाओं के साथ .NET 2.0 में पेश की गई एक सामान्य कक्षा है। उन्होंने System.Collections नामस्थान में कक्षाओं का अधिग्रहण किया।

9

हैशटेबल का मुख्य लाभ यह है कि आप इसका उपयोग कर सकते हैं और .NET < 2.0 को लक्षित कर सकते हैं।

अन्यथा, शब्दकोश < टी, वाई > (सही ढंग से उपयोग किया जाता है) हर तरह से काफी बेहतर है।

0

यहाँ क्या मैं

1) कुंजी मान जोड़े 2) कुंजी मान जोड़ों में Hastable भी दुकानों में शब्दकोश भंडार पता है, लेकिन सामग्री की जांच करने के लिए एक हैश कुंजी का उपयोग करता।

तो अगर मैं तय करना चाहता हूं कि क्या उपयोग करना है, तो क्या मेरा संग्रह विशाल है और मैं एक निश्चित वस्तु को खोजना चाहता हूं, तो क्या हैशटेबल का उपयोग करना चाहिए? और यदि संग्रह इतना बड़ा नहीं है तो शब्दकोश का उपयोग करें?

इसके अलावा एक फॉलोअप प्रश्न है, सी # में, जल्दबाजी में सी या सी ++ की तरह चेनिंग नहीं होती है यह सही है?

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