答案:Java中遍历Map的常用方式包括entrySet()、keySet()、values()、Iterator、Lambda和Stream。1. entrySet()适合同时使用key和value,性能高;2. keySet()用于仅需key或通过key取value;3. values()仅遍历值;4. Iterator支持安全删除;5. Lambda表达式(forEach)简洁适用于JDK 8+;6. Stream API支持复杂操作如过滤映射。推荐优先使用entrySet()。

Java中遍历Map集合有多种方式,不同的方式适用于不同的场景。以下是几种常用的遍历方法,结合代码示例说明其用法和特点。
1. 使用entrySet()遍历键值对
这是最常见且推荐的方式,适合同时需要key和value的场景。
通过Map.entrySet()获取Entry集合,再进行迭代。
示例代码:
Map
map.put("a", 1);
map.put("b", 2);
for (Map.Entry
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
2. 使用keySet()遍历所有键
当你只需要遍历key,或者通过key获取value时使用。
立即学习“Java免费学习笔记(深入)”;
通过Map.keySet()获取所有key的Set集合。
示例代码:
for (String key : map.keySet()) {
System.out.println("Key: " + key + ", Value: " + map.get(key));
}
3. 使用values()遍历所有值
当你只关心Map中的value,不需要key时使用。
通过Map.values()获取所有value的Collection。
示例代码:
for (Integer value : map.values()) {
System.out.println("Value: " + value);
}
4. 使用Iterator遍历(支持删除操作)
在遍历过程中需要删除元素时,应使用Iterator,避免并发修改异常。
entrySet()和keySet()都返回可迭代集合,支持Iterator。
示例代码:
Iterator
while (iterator.hasNext()) {
Map.Entry
if ("a".equals(entry.getKey())) {
iterator.remove(); // 安全删除
}
}
5. 使用Lambda表达式(JDK 8+)
简洁高效,适合简单处理逻辑。
使用Map.forEach()方法配合Lambda表达式。
示例代码:
map.forEach((key, value) -> {
System.out.println("Key: " + key + ", Value: " + value);
});
6. 使用Stream API(JDK 8+)
支持更复杂的过滤、映射等操作,函数式编程风格。
将Map转为Stream进行处理。
示例代码:
map.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.forEach(entry -> System.out.println(entry.getKey() + "=" + entry.getValue()));
基本上就这些常用方式。选择哪种方式主要看具体需求:是否需要删除元素、是否只关注key或value、是否使用JDK 8以上版本等。entrySet()是最通用的方式,推荐优先使用。











