Monday 15 March 2010

java - Read HashMap<String, HashMap -


एक हैशमैप :

  हैशमैप विमान हैन्डलिंग = नया हैशमैप & lt; स्ट्रिंग, हैशमैप & lt; डबल, पूर्णांक & gt; & gt; ();   

यह हैशमैप में निम्नलिखित प्रविष्टियां हैं:

  हैशमैप & lt; "M", हैशमॉप & lt; 1.22, 200 & gt; & gt; ( ); हैशमैप & lt; "M", हैशमॉप & lt; 5.62, 300 & gt; & gt; (); हैशमैप & lt; "एल", हैशमॉप & lt; 10.11, 900 & gt; & gt; ();   

मुझे कुंजी "एम" के लिए प्रविष्टियां प्राप्त करने की आवश्यकता है, अर्थात हैशमॉप & lt; 1.22, 200 & gt; और हैशमैप & lt; 5.62, 300 & gt; । मैं इसे निम्न तरीके से करता हूं:

  हैशमैप लाइनें = (हैशमैप & lt; डबल, पूर्णांक & gt;) विमानहैंडलिंग.गेट ("एम");   

सवाल यह है कि कैसे डबल और पूर्णांक , यानी (1.22, 200) और (5.62, 300), दो में प्राप्त करें अलग चर?

  के लिए (int i = 0; i & lt; lines.size (); i ++) {// डबल वैल्यू = [i] ??? // integerValue = [i] ??? }    

इस तरह से आप एक कुंजी-मान जोड़ी को निकाल सकते हैं कीसेट :

  Iterator & lt; डबल & gt; से अधिक बार फिर से  हैशमैप  की मजबूत> यह = लाइन.कीसेट ()। इटरेटर (); जबकि (यह hasNext ()) {डबल कुंजी = it.next (); पूर्णांक मान = lines.get (कुंजी); }   

साइड नोट पर, मुझे नहीं पता कि यह एक त्रुटि है, या आपके डेटा का सिर्फ एक खराब प्रतिनिधित्व:

  हैशमैप & lt; "M", हैशमॉप & lt; 1.22, 200 & gt; & gt; (); हैशमैप & lt; "M", हैशमॉप & lt; 5.62, 300 & gt; & gt; ();   

लेकिन अगर यह कैसे दिखता है, यह असंभव है एक मानचित्र एक ही कुंजी के लिए एक भी मान हो सकता है! इसका अर्थ है, यदि आप किसी कुंजी "M" के लिए कुछ मान डालते हैं और आप उसी कुंजी के लिए इसे फिर से करते हैं, तो बाद के संस्करण को पिछले मान को अधिलेखित कर दिया जाएगा। आपको क्या करना चाहिए:

  // "एम" हैशमैप के लिए आंतरिक मानचित्र प्राप्त करें & lt; डबल, पूर्णांक & gt; InnerMap = विमानहैंडलिंग.गेट ("एम"); If (innerMap == null) {// यदि यह मौजूद नहीं है, तो इसे आंतरिकमैप = नया हैशमैप & lt; डबल, पूर्णांक & gt; (); विमानहैंडलिंग.पूट ("एम", इनररमार्क); }   

और अब, इनरमार्क में आप अन्य मान जोड़ते हैं, जैसे:

  इनररमॅप.पूट (1.22, 200) ; आंतरिकमैप.पॉट (5.62, 300);    

No comments:

Post a Comment