登录
首页 >  文章 >  java教程

Java遍历Map的三种高效方式

时间:2026-03-21 17:10:28 294浏览 收藏

在Java开发中,高效遍历Map的键、值或键值对是日常编码的高频需求,本文系统梳理了五种主流方式:entrySet()适合同时获取键与值,keySet()和values()分别聚焦于键或值的提取,Iterator保障遍历中安全删除元素,而Java 8+推荐的forEach结合Lambda则以极简函数式语法大幅提升可读性与开发效率——无论你是维护老项目还是编写新代码,都能根据具体场景(是否需键值联动、是否涉及修改操作、是否追求简洁)快速选择最合适的遍历策略。

在Java中如何遍历Map的键和值

在Java中遍历Map的键和值有多种方式,常用的方法取决于你的具体需求,比如只需要键、只需要值,还是需要同时获取键和值。以下是几种常见的遍历方式:

1. 使用 entrySet() 遍历键和值

这是最常用的方式,适用于需要同时访问键和值的情况。

通过 entrySet() 获取Map中所有的键值对,然后使用增强for循环或迭代器遍历。

示例代码:
Map map = new HashMap<>();
map.put("Alice", 25);
map.put("Bob", 30);

for (Map.Entry entry : map.entrySet()) {
    System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}

2. 使用 keySet() 遍历所有键

当你只需要Map中的键时,可以使用 keySet()

它返回Map中所有键的Set视图,可以用于遍历或判断某个键是否存在。

示例代码:
for (String key : map.keySet()) {
    System.out.println("Key: " + key);
}

3. 使用 values() 遍历所有值

如果你只关心值而不关心对应的键,可以使用 values() 方法。

它返回Map中所有值的Collection视图。

示例代码:
for (Integer value : map.values()) {
    System.out.println("Value: " + value);
}

4. 使用 Iterator 遍历(传统方式)

适用于需要在遍历过程中安全删除元素的场景。

你可以通过 entrySet().iterator() 获得迭代器。

示例代码:
Iterator> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry entry = iterator.next();
    System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
    // 可以安全调用 iterator.remove()
    // iterator.remove();
}

5. 使用 forEach() 和 Lambda 表达式(Java 8+)

更简洁的函数式写法,适合现代Java开发。

利用Map接口提供的 forEach() 方法配合Lambda表达式。

示例代码:
map.forEach((key, value) ->
    System.out.println("Key: " + key + ", Value: " + value));

基本上就这些。选择哪种方式主要看你是要处理键、值,还是两者都要,以及是否需要删除元素或追求代码简洁性。

到这里,我们也就讲完了《Java遍历Map的三种高效方式》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>