मुझे अपनी कक्षाओं में से एक में एक उदाहरण सदस्य के रूप में एक लुकअप टेबल स्टोर करने की आवश्यकता है। ऑब्जेक्ट का निर्माण होने पर तालिका प्रारंभ की जाएगी।इस मेमोरी लुकअप टेबल के लिए सबसे अच्छी डेटा संरचना क्या है?
StringKey (e.g., "car")
EnumKey (e.g., LookupKeys.Car)
Value (e.g, "Ths is a car.")
मैं डेटा संरचना है कि या तो StringKey या EnumKey द्वारा लुकअप करने के लिए सबसे अच्छा प्रदर्शन निकलेगा लेने के लिए चाहते हैं: प्रत्येक "पंक्ति" 3 "कॉलम" होगा।
यह एक ही शब्दकोश के लिए 2 चाबियाँ अजीब है। मैंने पहले कभी इसका सामना नहीं किया है, इसलिए मैं सोच रहा हूं कि इस तरह की चीज़ के लिए मानक क्या है।
मैं कुंजी/कुंजी/वैल्यू के बजाय एक कुंजी/वैल्यू/वैल्यू स्ट्रक्चर बना सकता हूं, लेकिन मुझे आश्चर्य है कि किस प्रकार का प्रदर्शन प्रभाव होगा।
क्या मैं इस सब गलत के बारे में सोच रहा हूं?
ठीक है - तो मेरे उदाहरण में, "मूल्य उदाहरण" केवल तार हैं। मैं 2 शब्दकोश (एक स्ट्रिंगकी के साथ, एक EnumKey के साथ) कर दूंगा जिसके मूल्यों में एक ही स्ट्रिंग संदर्भ चर शामिल है। क्या यह सही लगता है? –
निश्चित रूप से। पायथन में यह सब कुछ है। जावा में, एक string.intern() है जो आश्वस्त करता है कि सभी इंटर्न() 'डी स्ट्रिंग्स को एक सामान्य स्ट्रिंग पूल में कम कर दिया जाता है, जिससे कुछ संभावित अनावश्यकता समाप्त हो जाती है। –
मैं सी # का उपयोग कर रहा हूं ... क्या आपको पता है कि .NET स्ट्रिंग की एक प्रति बना देगा जब मैं इसे प्रत्येक शब्दकोश में जोड़ूं? –