迭代Map中的键和值

rav*_*ven 2 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));
}
Run Code Online (Sandbox Code Playgroud)

我知道Groovy对此有一些很好的抽象(例如,在groovy地图中获取密钥),但我受限于POJ.当然,必须有一种更优雅,更简洁的方式来实现这一点,我的意思是Java?

ami*_*mit 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());
}
Run Code Online (Sandbox Code Playgroud)


And*_*nek 5

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

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

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