Java 中遍历 Map 的常用方法

在 Java 开发中,遍历 Map 集合是一项高频操作。根据具体的业务需求(如是否需要删除元素、是否使用 Java 8 新特性等),可以选择不同的遍历方式。以下是几种主流的实现方法:

1. 增强型 for 循环 (for-each)

这是最通用且推荐的写法,适用于大多数场景。通过 entrySet() 获取键值对集合后进行遍历,代码简洁且易读。

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

2. 迭代器 (Iterator)

如果需要在遍历过程中安全地删除元素,应使用 Iterator。这是在循环中修改集合结构的标准方式。

Iterator<Map.Entry<Key, Value>> it = map.entrySet().iterator();
while (it.hasNext()) {
   Map.Entry<Key, Value> entry = it.next();
   Key key = entry.getKey();
   Value value = entry.getValue();
   // ...
}

3. Java 8 Map.forEach 方法

利用 Java 8 引入的默认方法,可以直接通过 Lambda 表达式遍历键值对。注意这并非 Stream API,而是 Map 接口自带的 forEach 方法,语法最为简洁。

map.forEach((key, value) -> {
   // ...
}); 

4. Java 8 entrySet().forEach

同样基于 Java 8 特性,这种方式是对 entrySet() 返回的 Set 集合直接调用 forEach 方法。与第 3 种方法相比,它操作的是 Entry 对象。

map.entrySet().forEach(entry -> {
   Key key = entry.getKey();
   Value value = entry.getValue();
   // ...
});
说明:方法 3 和方法 4 依赖 Lambda 表达式,需要 Java 8 或更高版本支持。若项目运行在较低版本,请使用方法 1 或方法 2。代码中的 KeyValue 请替换为实际的泛型类型。