迭代Map中的键和值

时间:2012-07-18 08:20:48

标签: java

有时我会发现自己复制代码以从Map中提取键和值条目(例如,在测试/调试第三方API时)。

Map<String, String> someMap;
Set<String> keys = someMap.keySet();
for(int j=0;j<someMap.size();j++){
    String key = (String) keys.toArray()[j];
    System.out.println("key > " + key + "  : value = " + someMap.get(key));
}

我知道Groovy对此有一些很好的抽象(例如Get key in groovy maps),但我受限于POJ。当然,必须有一种更优雅,更简洁的方式来实现这一点,我的意思是Java?

3 个答案:

答案 0 :(得分:9)

您可以使用Entry<String,String>并使用for-each loop进行迭代。您可以使用Map.entrySet()获取Entry对象。

可以使用Entry.getKey()Entry.getValue()

提取条目中的键和值

代码示例:

Map<String, String> someMap;
for (Entry<String,String> entry : someMap.entrySet()) {
    System.out.println("key > " + entry.getKey()+ "  : value = " + entry.getValue());
}

答案 1 :(得分:4)

您可以使用for each循环来简化代码:

Map<String, String> someMap;
for(String key : someMap.keySet()){
    System.out.println("key > " + key + "  : value = " + someMap.get(key));
}

或者您使用条目集执行此操作。当我还在编辑我的答案时,Amit为此提供了一些代码; - )

答案 2 :(得分:0)

根据您要执行的操作,Google集合具有Maps API,可提供一些帮助函数来转换地图等。

如果您想要打印地图,this帖子可能很有用