मैं एक संसाधन डिक्शनरी का उपयोग कर रहा हूं, लेकिन मैं अन्य आइटम के साथ मूल्य या कुंजी को देखने में सक्षम होना चाहता हूं। प्रत्येक हमेशा अद्वितीय होता है, इसलिए यह कोई समस्या नहीं है। क्या कोई ऐसा प्रकार है जिसमें यह डबल पक्षीय लुकअप सुविधा है?डबल पक्षीय संसाधन शब्दकोश के रूप में क्या उपयोग किया जा सकता है?
उत्तर
निर्मित नहीं है, लेकिन यह लिखना बहुत आसान है। मैं शायद इसके लिए IDictionary लागू करूँगा ... फिर आप संसाधन डिक्शनरी को अपने कस्टम प्रकार में डंप करेंगे।
public class DoubleLookup<TKey, TValue>
{
private IDictionary<TKey, TValue> keys;
private IDictionary<TValue, TKey> values;
//stuff...
public void Add(TKey key, TValue value)
{
this.keys.Add(key, value);
this.values.Add(value, key);
}
public TKey GetKeyFromValue(TValue value)
{
return this.values[value];
}
public TValue GetValueFromKey(TKey key)
{
return this.keys[key];
}
}
किसी शब्दकोश में कुंजी/मूल्य संबंधों को उलटते समय बहुत सावधान रहें।
शब्दकोश का अनुबंध गारंटी देता है कि संग्रह में प्रत्येक मूल्य के लिए, बिल्कुल एक कुंजी है जो उस मान के लिए मानचित्र है। चाबियाँ अद्वितीय हैं। लेकिन विपरीत सच नहीं है; प्रत्येक विशिष्ट मूल्य के लिए, उस मान पर कई अलग-अलग कुंजी मैपिंग हो सकती हैं।
मेरी व्यक्तिगत कोड लाइब्रेरी (जावा में लिखा गया है, जो काफी करीब है) में, मेरे पास इस तरह की चीज़ के लिए मल्टीमैप क्लास है। हालांकि चाबियाँ अद्वितीय हैं, प्रत्येक कुंजी कई मानों से जुड़ी हो सकती है। यह एक मानचित्र के समान है>।
जब मैं एक संग्रह में मूल्य-टू-कुंजी लुकअप प्रदर्शन करने की जरूरत है, मैं कुछ इस तरह करते हैं:
Map<K, V> lookupTable = ...;
MultiMap<V, K> reverseLookupTable = MapUtil.invert(lookupTable);
V value = ...;
if (reverseLookupTable.containsKey(value)) {
Set<K> keys = reverseLookupTable.get(value);
}
आप अपने रिवर्स के रूप में (एक HashMap या शब्दकोश) की तरह एक मल्टीमैप के अलावा कुछ का उपयोग करते हैं -अपबैक टेबल, आप अपने कुछ वी-> के मैपिंग्स को खोने का जोखिम चलाते हैं, जब तक कि आप गारंटी न दें कि आपके संग्रह में सभी कुंजियां और सभी मान अद्वितीय हैं।
संपादित करें:
उफ़। मैंने अभी देखा है कि आपने कहा है कि आपके संग्रह में सभी कुंजी और मान अद्वितीय हैं। लेकिन मैं इसे किसी भी तरह से यहां जवाब दूंगा, दूसरों को पढ़ने के लिए चेतावनी के रूप में, जो एक ही गारंटी प्रदान करने में सक्षम नहीं हो सकता है।
- 1. क्या .NET में एक डबल पक्षीय स्टैक क्लास है?
- 2. क्या WampServer उत्पादन में सफलतापूर्वक उपयोग किया जा सकता है?
- 3. क्या MySQLBulkLoader लेनदेन के साथ उपयोग किया जा सकता है?
- 4. क्या रूबी वास्तव में एक कार्यात्मक भाषा के रूप में उपयोग किया जा सकता है?
- 5. क्या सेवा के रूप में मोनो कंपाइलर डीबगिंग संदर्भ में उपयोग किया जा सकता है?
- 6. क्या अमेज़ॅन आईएएम मेजबानों के लिए प्रमाणीकरण विधि के रूप में उपयोग किया जा सकता है?
- 7. संसाधन शब्दकोश
- 8. Cpython में क्या किया जा सकता है जो IronPython में नहीं किया जा सकता है?
- 9. डबल को संदर्भित नहीं किया जा सकता है?
- 10. क्या यह परमाणु रूप से निष्पादित किया जा सकता है?
- 11. संसाधन शब्दकोश
- 12. गतिशील रूप से लोड किया जा सकता है जावास्क्रिप्ट अनलोड किया जा सकता है?
- 13. क्या WPF विषयों का उपयोग किसी अनुप्रयोग के लिए एकाधिक स्किन्स को शामिल करने के लिए किया जा सकता है जिसे रनटाइम पर बदला जा सकता है?
- 14. स्क्रिप्ट संसाधन त्रुटि: क्या मुझे हैक किया जा रहा है?
- 15. तत्काल क्या किया जा सकता है?
- 16. एसवीजी फाइलें, क्या उनका उपयोग किया जा सकता है?
- 17. PHP 5.2 में array_map फ़ंक्शन के रूप में एक विधि का उपयोग किया जा सकता है?
- 18. तो क्या stl संग्रह में unique_ptr सुरक्षित रूप से उपयोग किया जा सकता है?
- 19. क्या सी ++ कक्षा में खुद को सदस्य के रूप में शामिल किया जा सकता है?
- 20. सी # में var - सदस्य चर के रूप में इसका उपयोग क्यों नहीं किया जा सकता है?
- 21. क्या Log4JLogger का मूल कारण पाया जा सकता है या उपयोग नहीं किया जा सकता है?
- 22. एक्सएएमएल में प्रतिशत मूल्यों का उपयोग किया जा सकता है?
- 23. डब्ल्यूपीएफ बाध्यकारी: स्टेटिक संसाधन को हल नहीं किया जा सकता
- 24. क्यों आईट्रीम ऑब्जेक्ट को बूल अभिव्यक्ति के रूप में उपयोग किया जा सकता है?
- 25. क्या कक्षा को जावा में स्थैतिक के रूप में तत्काल किया जा सकता है?
- 26. क्यों पॉइंट और आयत वैकल्पिक पैरामीटर के रूप में उपयोग नहीं किया जा सकता है?
- 27. फ़ंक्शन कॉल का परिणाम डिफ़ॉल्ट पैरामीटर मान के रूप में उपयोग किया जा सकता है?
- 28. क्या फेसबुक एडोब फ्लेक्स में लागू किया जा सकता है?
- 29. उत्पादन कोड में स्टॉपवॉच का उपयोग किया जा सकता है?
- 30. गेटर्स बराबर और हैशकोड में उपयोग किया जा सकता है?