2012-11-05 21 views
15

मैं गुवा पुस्तकालय में नया हूं, लेकिन पाया है कि बायैप मेरी आवश्यकताओं को अच्छी तरह से फिट करता है। मेरा एक मुद्दा यह है कि मुझे अपने बायैप में मूल्यों को क्रमबद्ध करने की आवश्यकता है। आम तौर पर, मैं अपने उत्तराधिकारी सॉर्टिंग के कारण ट्रीमैप का उपयोग करता था, लेकिन चाबियों को देखने के लिए मानचित्र को घुमाने में सक्षम होना जैसे कि वे मूल्य हैं।एक गुवा बायमैप को छंटाई

तो मैं इस बारे में जाने के बारे में विशेषज्ञों से सलाह ढूंढ रहा था। मेरे द्वारा देखे जाने वाले समाधान हैं: 1. एक बायैप तुलनित्र बनाएं और अपने स्वयं के मानचित्र सॉर्टिंग उपयोगिता का उपयोग करें। 2. अपनी खुद की 'BiTreeMap' डेटा संरचना बनाएं।

क्या कोई समाधान है जिसे मैंने नहीं माना है? क्या ऐसा करने के लिए कोई 'अमरूद रास्ता' है जो मुझे याद आया? धन्यवाद!

उत्तर

20

वर्तमान में हमारे पास BiMap टाइप नहीं है क्योंकि यह थोड़ा अस्पष्ट है कि यह कैसे काम करेगा: क्या प्रविष्टियों को चाबियों द्वारा क्रमबद्ध किया जाएगा? मूल्यों से? आगे की प्रविष्टियों को चाबियों द्वारा क्रमबद्ध किया जाएगा, और उलटा प्रविष्टियों को मानों द्वारा क्रमबद्ध किया जाएगा? इसलिए ImmutableBiMap.copyOf(Maps.newTreeMap(map)) आप एक BiMap कुंजी के अनुसार क्रमबद्ध देना होगा -

वर्तमान में, केवल वास्तविक उपलब्ध विकल्प ImmutableBiMap जो आदेश है कि आप में प्रविष्टियों डाल को बरकरार रखे हुए है।

(हम और अधिक गंभीरता से उपलब्ध कराने के एक सीधे BiMap अनुसार क्रमबद्ध अगर आप अपने उपयोग के मामले के बारे में अधिक विवरण के साथ एक सुविधा का अनुरोध दायर, हालांकि सोच सकते हैं।)

+0

जवाब के लिए धन्यवाद! मुझे लगता है कि एक ट्रीमैप से व्युत्पन्न इम्यूटेबलबीमैप पर्याप्त रूप से आधार को कवर करेगा। मुझे शायद ही कभी ऐसा करने की ज़रूरत है और नक्शा हमेशा छोटा होगा, इसलिए यह एक प्रदर्शन मुद्दा नहीं होगा। रास्ते में किक गधा पुस्तकालय। – Cody

संबंधित मुद्दे