2016-12-29 2 views
0

Я использую этот код для добавления к hashmap:Получить весь ребенок HashMap <Integer, ArrayList <String>>

static HashMap<Integer, ArrayList<String>> arrayMap = new HashMap<Integer, ArrayList<String>>(); 

ArrayList<String> list = new ArrayList<String>(); 
list.add("t"); 
list.add("b"); 
arrayMap.put(12, list); 

ArrayList<String> list = new ArrayList<String>(); 
list.add("y"); 
list.add("x"); 
arrayMap.put(18, list); 

этого код работа правильно

, но я не могу получить ребенок arrayMap в Еогеаспе

for(arrayMap ....){ 
    return // 12:t,b 18:y,x 
} 

Моя попытка:

for (int a = 0; a < arrayMap.size(); a++) 
     { 
      HashMap<String, Integer> tmpData = (HashMap<String, Integer>) arrayMap.get(a); 
      Set<String> key = tmpData.keySet(); 
      Iterator it = key.iterator(); 
      while (it.hasNext()) { 
       String hmKey = (String) it.next(); 
       Integer hmData = (Integer) tmpData.get(hmKey); 

       System.out.println("Key: " + hmKey + " & Data: " + hmData); 
       it.remove(); // avoids a ConcurrentModificationException 
      } 

     } 
+0

Когда вы говорите ребенок сделать вы имеете в виду пары ключ-значение или только значения? Кроме того, значения представляют собой списки, поэтому вы хотите получить каждый элемент каждого списка? –

ответ

1

Вы хотите перебрать каждую запись в HashMap в вложенном цикле, как это:

for(Map.Entry<Integer, ArrayList<String>> entry : arrayMap.entrySet()){ 
    //entry.getKey() will be each key in the HashMap 
    for(String str : entry.getValue()){ 
     // str is one entry of the ArrayList for that Key 
    } 
}