दिखाया के रूप में मैं एक और HashMap
अंदर एक HashMap
बनाई करना चाहिए जिसके नीचे क्रमएक और HashMap अंदर एक HashMap भंडारण और प्रदर्शन
यानी पर बाहरी HashMap
के प्रमुख के आधार पर आंतरिक HashMap
अंदर मूल्य स्टोर कर सकते हैं में सुधार कार्यक्रम के लिए आवश्यक आउटपुट प्रारूप
{ 1 = {11 = "aaa",15 = "bbb"}, 2 = {13 = "ccc", 14 = "ddd"} }
जहां 1,2 बाहरी हैश मैप के लिए महत्वपूर्ण मान हैं।
इसके नीचे के लिए प्रदान की कोड है वहाँ प्रदर्शन
सुधार करने के लिए किसी भी बेहतर दृष्टिकोण हैHashMap<Integer, HashMap<Integer, String>>Outer
= new HashMap<Integer, HashMap<Integer,String>>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
for(int i =0;i<count;i++)
{
String input[] = br.readLine().split("\\s");
//HashMap<Integer,String>inner = new HashMap<Integer, String>();
int key = Integer.parseInt(input[0]);
if(Outer.isEmpty() || !Outer.containsKey(key))
{
HashMap<Integer, String> inner = new HashMap<Integer, String>();
inner.put(Integer.parseInt(input[1]),input[2]);
Outer.put(key, inner);
}
else if(Outer.containsKey(key))
{
HashMap<Integer, String> inner = (HashMap<Integer, String>) Outer.get(key).clone();
inner.put(Integer.parseInt(input[1]), input[2]);
Outer.put(key, inner);
}
}
आपको ऐसा क्यों लगता है कि आपको प्रदर्शन में सुधार करने की आवश्यकता है? क्या यह कोड निष्पादित करने के लिए असाधारण समय ले रहा है? – Jeffrey
मुझे लगता है कि दो-स्तर के हैशपैप का उपयोग करने से प्रदर्शन को कम करने की संभावना अधिक है। –
हालांकि यह स्पष्ट नहीं है, यह सवाल से लिया जा सकता है कि 2 मानचित्रों में विभाजित प्रदर्शन कारणों से नहीं है। ध्यान दें कि बाहरी मानचित्र का उपयोग करने के लिए निर्धारण इनपुट से पढ़ा जा रहा है - एक और गणना नहीं हैश। मुझे लगता है कि प्रश्न का उद्देश्य दिए गए कार्यान्वयन के प्रदर्शन में सुधार करना है - जिसके लिए नेस्टेड मानचित्रों के उपयोग की आवश्यकता है। – ziesemer