2012-04-06 21 views
3

我正在嘗試顯示使用Iterator創建的map。 我使用的代碼是:在迭代器中顯示映射的內容

private void displayMap(Map<String, MyGroup> dg) { 
Iterator it = dg.entrySet().iterator(); //line 1 
while (it.hasNext()) { 
    Map.Entry pair = (Map.Entry)it.next(); 
    System.out.println(pair.getKey() + " = " + pair.getValue()); 
    it.remove(); 
    } 
} 

類MyGroup的,它有它的兩個字段名爲idname。 我想顯示這兩個值對pair.getValue()。 這裏的問題是第1行永遠不會執行,也不會引發任何異常。

請幫忙。附:

PS:我已經試過this link的所有方法。使用

+0

你怎麼知道它不執行? – Asha 2012-04-06 06:03:53

+0

我在第一行之後插入了sysout。它沒有打印。 – 2012-04-06 06:04:55

+1

你確定你是dg對象不是null或不是空的?另外,它是「MyGroup」嗎?你有你的班級小寫,這不是一個好主意。 – jmort253 2012-04-06 06:05:58

回答

7
Map<String, MyGroup> map = new HashMap<String, MyGroup>(); 
for (Map.Entry<String, MyGroup> entry : map.entrySet()) { 
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
} 

迭代

Map<String, MyGroup> map = new HashMap<String, MyGroup>(); 
Iterator<Map.Entry<String, MyGroup>> entries = map.entrySet().iterator(); 
while (entries.hasNext()) { 
    Map.Entry<String, MyGroup> entry = entries.next(); 
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
} 

更多的迭代信息,請參閱this link

+0

有幫助的鏈接,沒有理由爲什麼你的//第1行不會被執行。但它在這種情況下沒有幫助。同樣,沒有結果。 – 2012-04-06 06:21:35

+0

@SunmitGirme當然不是我已經在我的電腦中檢查過了,它給出了完美的結果。請檢查正確。 – 2012-04-06 06:24:03

+0

@chandraShekhar:是的,我相信在任何情況下顯示地圖內容的代碼都是正確的。 MyGroup類中的映射必定存在問題。 – 2012-04-06 06:26:34