क्या आप एक प्रकार का नक्शा या इसी तरह की डेटा संरचना का सुझाव दे सकते हैं जहां हम एक दूसरे से मूल्य और कुंजी दोनों को समान आसानी से प्राप्त कर सकते हैं। यही कहना है कि प्रत्येक को अन्य खोजने के लिए इस्तेमाल किया जा सकता है।बिडरेक्शनल मानचित्र
उत्तर
सबसे आम समाधान दो नक्शे का उपयोग कर रहा है। AbstractMap
को बढ़ाकर आप उन्हें एक दोस्ताना इंटरफेस के साथ आसानी से कक्षा में encapsulate कर सकते हैं।
कुछ भी नहीं लेकिन सरणियों और कस्टम कक्षाओं कुछ फायदे हैं का उपयोग कर एक नया डेटा संरचना बनाना (अद्यतन: दो नक्शे: यह अमरूद के HashBiMap
कैसे कार्यान्वित किया जाता है) है। मानचित्र कार्यान्वयन डेटा संरचना के हल्के रैपर होते हैं जो कुंजी को अनुक्रमित करते हैं। चूंकि आपको दो इंडेक्स की आवश्यकता है, इसलिए आप दो पूर्ण मानचित्रों का भी उपयोग कर सकते हैं।
जावा की मानक लाइब्रेरी में एक बिडरेक्शनल मानचित्र नहीं है।
उदाहरण के लिए BiMap<K, V>
Google Guava से उपयोग करें।
Google Guava में BiMap
(बायडिरेक्शनल मानचित्र) शामिल है।
आपको गिटूब को इंगित करने के लिए लिंक अपडेट करना चाहिए, लेकिन यह सोचा था कि वर्तमान लिंक काम करता है क्योंकि यह छोटा हो सकता है अभी के लिए। – Travis
उचित समय में। मुझे पता है कि Google Code केवल-पढ़ने योग्य मोड में है। –
अपाचे कॉमन्स संग्रह 4 BidiMap पैकेज को भी आजमाएं।
यदि आपको लगता है कि यह कुछ तीसरी पार्टी लाइब्रेरी आयात कर रहा है। इस सरल वर्ग के बारे में कैसे।
public class BiMap<K,V> {
HashMap<K,V> map = new HashMap<K, V>();
HashMap<V,K> inversedMap = new HashMap<V, K>();
void put(K k, V v) {
map.put(k, v);
inversedMap.put(v, k);
}
V get(K k) {
return map.get(k);
}
K getKey(V v) {
return inversedMap.get(v);
}
}
सुनिश्चित करें कि के और वी कक्षा में उचित हैशकोड कार्यान्वयन है।
औसत उपयोग के लिए अच्छी तरह से जहां आपको एक शब्दकोश की आवश्यकता है, मुझे एक KISS समाधान के साथ कुछ भी गलत नहीं लगता है, केवल कुंजी और मूल्य इसके विपरीत, दूसरे मानचित्र के ओवरहेड को सहेजना या उसके लिए केवल लाइब्रेरी को सहेजना उद्देश्य:
myMap.put("apple", "Apfel");
myMap.put("Apfel", "apple");
ध्यान दें कि यह केवल तभी काम करता है जब कुंजी और मान एक ही प्रकार के होते हैं, और आप अब और नहीं जानते कि कौन सा कुंजी है और कौन सा मूल्य है। कुछ मामलों में कौन सा ठीक हो सकता है। – Literallie
- 1. बिडरेक्शनल मानचित्र
- 2. बिडरेक्शनल एसोसिएशन
- 3. OneToMany बिडरेक्शनल मैपिंग
- 4. यूनिडायरेक्शनल या बिडरेक्शनल रिलेशनशिप
- 5. जीए जेडो बिडरेक्शनल नेविगेशन
- 6. हाइबरनेट - बिडरेक्शनल @OneToOne
- 7. बिडरेक्शनल इटरेटर फ़ाइल/ifstream
- 8. पायथन बिडरेक्शनल मैपिंग
- 9. असिंक्रोनस बिडरेक्शनल आरपीसी
- 10. unordered_map में बिडरेक्शनल इटरेटर्स?
- 11. ऑटोमैपर बिडरेक्शनल मैपिंग
- 12. सादा जावास्क्रिप्ट बिडरेक्शनल डेटा बाध्यकारी
- 13. एंड्रॉइड स्क्लाइट बिडरेक्शनल सिंक्रनाइज़ेशन स्क्लाइट
- 14. बिडरेक्शनल ए * (ए-स्टार) खोज
- 15. इस स्थिति के लिए बिडरेक्शनल डेटा संरचना
- 16. बिडरेक्शनल रिश्तों को कैसे स्टोर करें
- 17. ExtJS बिडरेक्शनल डेटा बाध्यकारी? या विकल्प
- 18. सिद्धांत - OneToOne यूनिडायरेक्शनल बनाम OneToOne बिडरेक्शनल
- 19. क्या बिडरेक्शनल एसोसिएशन को हाइबरनेट करना चाहिए?
- 20. क्या कोई बिडरेक्शनल मल्टीमैप लगातार डेटा संरचना है?
- 21. फ्लुएंट एनएचबेर्नेट: एक-से-एक बिडरेक्शनल मैपिंग कैसे बनाएं?
- 22. मानचित्र मानचित्र पर एंड्रॉइड मानचित्र सक्रियता
- 23. Google मानचित्र मानचित्र
- 24. मानचित्र में मानचित्र
- 25. मानचित्र?
- 26. मानचित्र
- 27. मानचित्र बनाम मानचित्र एम व्यवहार
- 28. मानचित्र डेटा संरचना का मानचित्र
- 29. गुवा में मानचित्र में मानचित्र
- 30. सी ++ बिडरेक्शनल यादृच्छिक अभिगम के लिए कुशल डेटा संरचना
आप अपनी खुद की कक्षा को दो हैमैप्स, प्रत्येक दिशा के लिए एक बना सकते हैं, और समानांतर में प्रबंधित कर सकते हैं। भंडारण स्थान और प्रदर्शन समय में स्पष्ट गिरावट दोगुनी है। –
[जावा-हैशमप-हाउ-टू-गेट-की-से-वैल्यू] (http://stackoverflow.com/questions/1383797/java-hashmap-how-to-get-key-from-value) – jaco0646
इसे देखें सरल उत्तर http://stackoverflow.com/a/39329515/5466401 –