遍历 HashMap

新手上路,请多包涵

遍历 HashMap 中的项目的最佳方法是什么?

原文由 burntsugar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 378
2 个回答

遍历 entrySet() 像这样:

 public static void printMap(Map mp) {
    Iterator it = mp.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pair = (Map.Entry)it.next();
        System.out.println(pair.getKey() + " = " + pair.getValue());
        it.remove(); // avoids a ConcurrentModificationException
    }
}

阅读更多关于 Map 的信息。

原文由 karim79 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您只对键感兴趣,则可以遍历地图的 keySet()

 Map<String, Object> map = ...;

for (String key : map.keySet()) {
    // ...
}

如果您只需要这些值,请使用 values()

 for (Object value : map.values()) {
    // ...
}

最后,如果您同时需要键和值,请使用 entrySet()

 for (Map.Entry<String, Object> entry : map.entrySet()) {
    String key = entry.getKey();
    Object value = entry.getValue();
    // ...
}

一个警告:如果你想在迭代中删除项目,你需要通过迭代器来完成(参见 karim79 的回答)。但是,可以更改项目值(请参阅 Map.Entry )。

原文由 harto 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题