2011-05-05 8 views
7

कृपया मुझे LinkedHashMap<String,ArrayList<String>> h के माध्यम से एक पाश बनाने में मदद:LinkedHashMap <स्ट्रिंग, ArrayList <String>> के माध्यम से लूप कैसे बनाएं?

if (h.get("key1").size() == 0) 
    System.out.println("There is no errors in key1."); 
else 
    System.out.println("ERROR: there are unexpected errors in key1."); 

if (h.get("key2").size() == 0) 
    System.out.println("There is no errors in key2."); 
else 
    System.out.println("ERROR: there are unexpected errors in key2."); 

if (h.get("key3").size() == 0) 
    System.out.println("There is no errors in key3."); 
else 
    System.out.println("ERROR: there are unexpected errors in key3."); 

if (h.get("key4").size() == 0) 
    System.out.println("There is no errors in key4.\n"); 
else 
    System.out.println("ERROR: there are unexpected errors in key4.\n"); 

उत्तर

13

इस तरह?

for (String key : h.keySet()) 
{ 
    System.out.println("Key: " + key); 
    for(String str : h.get(key)) 
    { 
     System.out.println("\t" +str); 
    } 
} 

संपादित करें:

for (String key : h.keySet()) 
{ 
    if(h.get(key).size() == 0) 
    { 
     System.out.println("There is no errors in " + key) ; 
    } 
    else 
    { 
     System.out.println("ERROR: there are unexpected errors in " + key); 
    } 
} 
+0

आप में मेरे सटीक संदेशों को जोड़ सकते हैं के साथ है अपने पाश? – Prostak

+0

@Prostak मेरा संपादन देखें। ऐसा लगता है कि आप यही चाहते हैं। –

+2

थोड़ा देर हो चुकी है, लेकिन क्या यह सम्मिलन आदेश में वापस आती है या क्या हमें एक पुनरावर्तक का उपयोग करना है? 'LinkedHashMap' के लिए javadocs 'हैश मैप' – edthethird

6

इस कोड का प्रयास करें:

Map<String, ArrayList<String>> a = new LinkedHashMap<String, ArrayList<String>>(); 
Iterator<Entry<String,ArrayList<String>>> itr = a.entrySet().iterator(); 
while (itr.hasNext()) { 
    Entry<String,ArrayList<String>> entry = itr.next(); 
    String key = entry.getKey(); 
    System.out.println("key: " + key); 
    List<String> list = entry.getValue(); 
    System.out.println("value: " + list); 
} 
+0

के समान हैं, क्या यह सम्मिलन आदेश में वापस आ जाएगा? – Gopinath

+0

हां यह प्रविष्टि आदेश सुनिश्चित करेगा क्योंकि LinkedHashMap का उपयोग यहां किया जा रहा है। – anubhava

3

Java8 में एक और तरीका है foreach() विधि

Map<String, List<String>> test1 = new LinkedHashMap<String, List<String>>(); 
test1.forEach((key,value) -> { 
    System.out.println(key + " -> " + value); 
}); 
संबंधित मुद्दे