C # शब्दकोष एक सरल तरीका है जिससे यह पता लगाया जा सकता है कि कुछ मौजूद है आदि। मेरा एक प्रश्न है कि वे कैसे काम करते हैं। मान लीजिए कि मैं एक शब्दकोष के बजाय एक ArrayList का उपयोग करता हूं। उपयोग करने के बजाय ContainsKey
(या किसी अन्य भाषा में समतुल्य विधि) I यह जाँचने के लिए ArrayList के माध्यम से लूप करता है कि क्या कुछ मौजूद है (या डेटा सॉर्ट करने या कुछ इसी तरह से बाइनरी सर्च करने पर)। दक्षता में क्या अंतर है? क्या ContainsKey
विधि कुंजियों के माध्यम से लूप करने के बजाय कुछ अधिक कुशल तरीके का उपयोग कर रही है और जांचें कि क्या मैं जो खोज रहा हूं वह मौजूद है?
अगर मान लें कि मैंने एक विशिष्ट हैश फ़ंक्शन बनाया है, जो उस डेटा के प्रकार से मेल खाता है जो मेरे पास है और विशेष रूप से डेटा के उस सेट के लिए डिज़ाइन किया गया है, तो हाँ, यह हैश फ़ंक्शन वास्तव में डेटा के माध्यम से लूपिंग से तेज है। लेकिन शब्दकोश सामान्य हैं। ContainsKey विधि उस डेटा के लिए विशिष्ट नहीं है जो इसे मिलती है, यह एक सामान्य खोज विधि है।
मूल रूप से जो मैं पूछ रहा हूं वह है। शब्दकोश प्रोग्रामर के लिए उपयोगी होते हैं। उनमें ऐसी विधियाँ शामिल हैं जो कई चीज़ों की मदद करती हैं और वे पूर्णांक, (कुंजियाँ और मान) और कई और चीज़ों के साथ तार जोड़ती हैं। लेकिन दक्षता के विषय में, वे क्या प्रदान करते हैं? एक dictionary
बनाम के होने में क्या अंतर ArrayList
हैstructs(string,int)
Data Structures
यह है कि विकी लिंक आपके लिए अधिक मददगार हो सकता है