Java遍历HashMap的6种常见方式

 更新时间:2025年05月08日 10:38:16   作者:程序员猫哥  
这篇文章主要给大家介绍了关于Java遍历HashMap的6种常见方式,方法包括使用keySet()、entrySet()、forEach()、迭代器以及分别遍历键和值,文中给出了详细的代码示例,需要的朋友可以参考下

在 Java 中,有多种方式可以遍历 HashMap,下面为你详细介绍几种常见的遍历方法。

1,使用 keySet() 遍历键,再通过键获取值

  • 创建一个 HashMap 对象,并向其中添加一些键值对。
  • 使用 map.keySet() 方法获取 HashMap 中所有键的集合。
  • 通过 for-each 循环遍历这个键的集合。
  • 在循环体中,使用 map.get(key) 方法根据当前键获取对应的值,并将键和值打印输出。
package com.maoge;

import java.util.HashMap;
import java.util.Map;

public class Test03 {
    public static void main(String[] args) {

        // 创建一个 HashMap 并添加元素
        Map<String, String> map = new HashMap<>();
        map.put("张飞", "男");
        map.put("孙尚香", "女");
        map.put("关羽", "男");
        map.put("貂蝉", "女");

        // 遍历键集合
        for (String key : map.keySet()) {
            // 根据键获取值
            String value = map.get(key);
            System.out.println("Key: " + key + ", Value: " + value);
        }
    }
}

2,使用 entrySet() 遍历键值对

  • 先创建一个 HashMap 对象并添加键值对。
  • 使用 map.entrySet() 方法获取包含所有键值对的集合。
  • 通过 for-each 循环遍历这个集合,每次循环得到一个 Map.Entry 对象。
  • 在循环体中,使用 entry.getKey() 方法获取键,使用 entry.getValue() 方法获取值,并将它们打印输出。
package com.maoge;

import java.util.HashMap;
import java.util.Map;

public class Test03 {
    public static void main(String[] args) {

        // 创建一个 HashMap 并添加元素
        Map<String, String> map = new HashMap<>();
        map.put("张飞", "男");
        map.put("孙尚香", "女");
        map.put("关羽", "男");
        map.put("貂蝉", "女");

        // 遍历键值对集合
        for (Map.Entry<String, String> entry : map.entrySet()) {
            // 获取键
            String key = entry.getKey();
            // 获取值
            String value = entry.getValue();
            System.out.println("Key: " + key + ", Value: " + value);
        }
    }
}

3,使用 forEach() 方法(Java 8 及以上)

  • 创建 HashMap 并添加元素。
  • 调用 map.forEach() 方法,传入一个 Lambda 表达式。Lambda 表达式的参数 key 和 value
    分别代表当前遍历到的键和值。
  • 在 Lambda 表达式的方法体中,将键和值打印输出。
package com.maoge;

import java.util.HashMap;
import java.util.Map;

public class Test03 {
    public static void main(String[] args) {

        // 创建一个 HashMap 并添加元素
        Map<String, String> map = new HashMap<>();
        map.put("张飞", "男");
        map.put("孙尚香", "女");
        map.put("关羽", "男");
        map.put("貂蝉", "女");

        // 使用 forEach 方法遍历
        map.forEach((key, value) -> {
            System.out.println("Key: " + key + ", Value: " + value);
        });
    }
}

4,使用迭代器(Iterator)遍历

  • 创建 HashMap 并添加元素。
  • 使用 map.entrySet().iterator() 方法获取键值对集合的迭代器。
  • 使用 while 循环结合 iterator.hasNext() 方法判断是否还有下一个元素。
  • 在循环体中,使用 iterator.next() 方法获取下一个 Map.Entry 对象,然后获取键和值并打印输出。
package com.maoge;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Test03 {
    public static void main(String[] args) {

        // 创建一个 HashMap 并添加元素
        Map<String, String> map = new HashMap<>();
        map.put("张飞", "男");
        map.put("孙尚香", "女");
        map.put("关羽", "男");
        map.put("貂蝉", "女");

        // 获取键值对集合的迭代器
        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();

        // 使用迭代器遍历
        while (iterator.hasNext()) {
            Map.Entry<String, String> entry = iterator.next();
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println("Key: " + key + ", Value: " + value);
        }
    }
}

5,遍历所有键

注意只是遍历键值,即key值,代码如下:

package com.maoge;

import java.util.HashMap;
import java.util.Map;

public class Test03 {
    public static void main(String[] args) {

        // 创建一个 HashMap 并添加元素
        Map<String, String> map = new HashMap<>();
        map.put("张飞", "男");
        map.put("孙尚香", "女");
        map.put("关羽", "男");
        map.put("貂蝉", "女");

        // 遍历所有键
        for (String key : map.keySet()) {
            System.out.println("key : " + key);
        }
    }
}

6,遍历所有值

注意只是遍历键值对的值,即value,代码如下:

package com.maoge;

import java.util.HashMap;
import java.util.Map;

public class Test03 {
    public static void main(String[] args) {

        // 创建一个 HashMap 并添加元素
        Map<String, String> map = new HashMap<>();
        map.put("张飞", "男");
        map.put("孙尚香", "女");
        map.put("关羽", "男");
        map.put("貂蝉", "女");

        // 遍历所有键
        for (String key : map.values()) {
            System.out.println("value: " + key);
        }
    }
}

总结 

到此这篇关于Java遍历HashMap的6种常见方式的文章就介绍到这了,更多相关Java遍历HashMap内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Cursor配置Java环境、创建Spring Boot项目的步骤

    Cursor配置Java环境、创建Spring Boot项目的步骤

    文章介绍了在IntelliJ IDEA中配置JDK和Maven的方法,安装常用插件如ExtensionPackforJava、DebuggerforJava等,并详细步骤创建SpringBoot项目、运行项目以及进行AI编程的初体验,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • JavaWeb读取配置文件的四种方法

    JavaWeb读取配置文件的四种方法

    这篇文章主要介绍了JavaWeb读取配置文件的4种方法,方法一采用ServletContext读取,方法二采用ResourceBundle类读取配置信息,方法三采用ClassLoader方式进行读取配置信息,对javaweb读取配置文件的四种方法感兴趣的朋友参考下吧
    2018-03-03
  • Spring Boot 3.x GraalVM原生镜像构建内存溢出问题解决方案

    Spring Boot 3.x GraalVM原生镜像构建内存溢出问题解决方案

    文章解析了Spring Boot 3.x与GraalVM Native Image构建过程中出现的内存溢出问题,从问题概述、根本原因、诊断工具、解决方案到高级调优技巧和应急解决方案,全面覆盖了构建优化的各个方面,本文给大家介绍的非常详细,感兴趣的朋友一起学习下吧
    2026-01-01
  • Java ClassPathResource读取JAR包中的资源方式

    Java ClassPathResource读取JAR包中的资源方式

    这段描述主要介绍了如何使用ClasspathResource类读取jar包中的资源文件,特别强调了如何读取resources目录下的JSON文件,并分享了个人的自测经验
    2026-05-05
  • Spring RedisTemplate 批量获取值的2种方式小结

    Spring RedisTemplate 批量获取值的2种方式小结

    这篇文章主要介绍了Spring RedisTemplate 批量获取值的2种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java的MyBatis+Spring框架中使用数据访问对象DAO模式的方法

    Java的MyBatis+Spring框架中使用数据访问对象DAO模式的方法

    Data Access Object数据访问对象模式在Java操作数据库部分的程序设计中经常被使用到,这里我们就来看一下Java的MyBatis+Spring框架中使用数据访问对象DAO模式的方法:
    2016-06-06
  • 使用ObjectMapper把Json转换为复杂的实体类

    使用ObjectMapper把Json转换为复杂的实体类

    这篇文章主要介绍了使用ObjectMapper把Json转换为复杂的实体类操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • SpringBoot中实现订单30分钟自动取消的三种方案分享

    SpringBoot中实现订单30分钟自动取消的三种方案分享

    在电商和其他涉及到在线支付的应用中,通常需要实现一个功能:如果用户在生成订单后的一定时间内未完成支付,系统将自动取消该订单,本文将详细介绍基于Spring Boot框架实现订单30分钟内未支付自动取消的几种方案,并提供实例代码,需要的朋友可以参考下
    2023-10-10
  • Java设计模式中的设计原则之合成复用原则详解

    Java设计模式中的设计原则之合成复用原则详解

    这篇文章主要介绍了Java设计模式中的设计原则之合成复用原则详解,原则是尽量使用合成/聚合的方式,而不是使用继承聚合关系表示的是整体和部分的关系,整体与部分可以分开,可以理解为成员变量和当前类的关系就是聚合关系,需要的朋友可以参考下
    2023-11-11
  • Java Integer如何获取第一位和最后一位,并截取

    Java Integer如何获取第一位和最后一位,并截取

    这篇文章主要介绍了Java Integer如何获取第一位和最后一位并截取,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01

最新评论