2

有时我发现自己复制代码以从 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 中?

4

3 回答 3

9

您可以使用for-each 循环Entry<String,String>对其进行迭代。您可以使用.EntryMap.entrySet()

Entry.getKey()可以使用和提取条目中的键和值Entry.getValue()

代码示例:

Map<String, String> someMap;
for (Entry<String,String> entry : someMap.entrySet()) {
    System.out.println("key > " + entry.getKey()+ "  : value = " + entry.getValue());
}
于 2012-07-18T08:21:51.117 回答
5

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

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

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

于 2012-07-18T08:27:33.720 回答
0

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

如果您只想漂亮地打印地图,这篇文章可能会很有用

于 2012-07-18T08:25:02.950 回答