संरक्षण मैं खोजने के लिए और पुन: उपयोग (यदि संभव हो तो) एक नक्शे के कार्यान्वयन जो निम्नलिखित गुण होते हैं चाहते हैं:स्काला (या जावा) में अनुकूली मैप्स प्रविष्टि आदेश
प्रविष्टियों की संख्या कम है, वहीं कहना < 32, अंतर्निहित भंडारण इस तरह की सरणी में किया जाना चाहिए [key0, val0, key1, val1, ...] यह स्टोरेज योजना कई छोटी प्रविष्टि ऑब्जेक्ट्स से बचाती है और अत्यधिक तेज दिखने के लिए प्रदान करती है (यहां तक कि वे अनुक्रमिक स्कैन भी हैं!) सीपीयू के कैश के कारण आधुनिक सीपीयू पर अमान्य नहीं किया जा रहा है और ढेर में सूचक संकेत की कमी है।
नक्शा कुंजी/मान जोड़े के लिए प्रविष्टि आदेश में समान प्रविष्टियों की संख्या की परवाह किए बिना बनाए रखना चाहिए LinkedHashMap को
हम विशाल (नोड/किनारों के लाखों लोगों) का इन-स्मृति अभ्यावेदन पर काम कर रहे स्कैला में ग्राफ और इस तरह के एक मानचित्र होने से हमें नोड/एज गुणों के साथ-साथ एज प्रति नोड को 99% + नोड्स और एज के लिए एक अधिक कुशल तरीके से स्टोर करने की अनुमति मिल जाएगी, जिसमें दोनों गुणों या पड़ोसियों के लिए क्रोनोलॉजिकल सम्मिलन आदेश को संरक्षित करते समय गुण और किनारों।
यदि किसी को ऐसी विशेषताओं के साथ स्कैला या जावा मानचित्र के बारे में पता है तो मैं बहुत अधिक बाध्य होगा।
Thanx
संदर्भ के लिए, मैं यह नोट कर रहा हूं कि ओपी को मेरा समाधान संतोषजनक नहीं मिला और अनुरोध किया कि मैं इसे हटा दूं। संक्षेप में, विचार सब कुछ अनुक्रमित सरणी, फोरट्रान शैली में रखना था, लेकिन फिर इस संरचना के चारों ओर अच्छे रैपर लिखना ताकि यह सौदा करने में सुखद लगे। इस विधि का लाभ यह है कि यह अविश्वसनीय रूप से तेज़ है (मुख्य रूप से केवल प्राइमेटिव का उपयोग करने के कारण) और स्वाभाविक रूप से सम्मिलन आदेश को संरक्षित करता है (क्योंकि जब आप एक नई प्रविष्टि की आवश्यकता होती है तो आप केवल अपनी अनुक्रमणिका में 1 जोड़ते हैं)। फोरट्रान और सी में बहुत अधिक ग्राफ काम इस तरह से किया गया है, लेकिन मैं सहमत हूं कि मैंने वांछित मानचित्र की पहचान नहीं की है। –
चूंकि आप पहले ही कार्यान्वयन के बारे में सोच रहे हैं, आप अपना खुद का लेखन क्यों नहीं करते? एक सरणी या एक LinkedHashMap के चारों ओर एक रैपर लिखना मुश्किल नहीं हो सकता है। – starblue
आप एक विशेष मामले के लिए अपने संग्रह का उपयोग कर रहे हैं। इसलिए आपको बचत के इस तरह के सामान्य तरीके से परेशान नहीं होना चाहिए। उच्च प्रदर्शन प्राप्त करने के लिए, अपना खुद का डेटास्ट्रक्चर बनाना दिलचस्प होगा। आप अपने मामले के लिए अपने strukture अनुकूलित कर सकते हैं, क्योंकि ऐसा लगता है कि आप अपने ग्राफ का बहुत अधिक जानते हैं। इसलिए आपको पेड़ों, सूचियों, जो भी हो, इसके बारे में उच्चतम संभावित प्रदर्शन प्राप्त करने के बारे में सोचना चाहिए। हो सकता है कि आपको O (n * logn) या उससे कम का रनटाइन प्रदर्शन प्राप्त हो ....;) –