Java遍历HashMap的6种常见方式

2025-05-08 13:50

本文主要是介绍Java遍历HashMap的6种常见方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Java遍历HashMap的6种常见方式》这篇文章主要给大家介绍了关于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();
            // 获取python值
            String value = entry.getValue();
            System.out.println("Key: " + key + ", Value: " + value)www.chinasem.cn;
        }
    }
}

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("孙尚香", "女js");
        map.put("关羽", "男");
        map.put("貂蝉", "女");

        // 使用 forEach 方法遍历
        ma编程p.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("孙尚香",http://www.chinasem.cn "女");
        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内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于Java遍历HashMap的6种常见方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154525

相关文章

Java版本不兼容问题详细解决方案步骤

《Java版本不兼容问题详细解决方案步骤》:本文主要介绍Java版本不兼容问题解决的相关资料,详细分析了问题原因,并提供了解决方案,包括统一JDK版本、修改项目配置和清理旧版本残留等步骤,需要的朋... 目录错误原因分析解决方案步骤第一步:统一 JDK 版本第二步:修改项目配置第三步:清理旧版本残留兼容性对

使用FileChannel实现文件的复制和移动方式

《使用FileChannel实现文件的复制和移动方式》:本文主要介绍使用FileChannel实现文件的复制和移动方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录使用 FileChannel 实现文件复制代码解释使用 FileChannel 实现文件移动代码解释

Spring实现Bean的初始化和销毁的方式

《Spring实现Bean的初始化和销毁的方式》:本文主要介绍Spring实现Bean的初始化和销毁的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Bean的初始化二、Bean的销毁总结在前面的章节当中介绍完毕了ApplicationContext,也就

Java的"伪泛型"变"真泛型"后对性能的影响

《Java的伪泛型变真泛型后对性能的影响》泛型擦除本质上就是擦除与泛型相关的一切信息,例如参数化类型、类型变量等,Javac还将在需要时进行类型检查及强制类型转换,甚至在必要时会合成桥方法,这篇文章主... 目录1、真假泛型2、性能影响泛型存在于Java源代码中,在编译为字节码文件之前都会进行泛型擦除(ty

Java中的getBytes()方法使用详解

《Java中的getBytes()方法使用详解》:本文主要介绍Java中getBytes()方法使用的相关资料,getBytes()方法有多个重载形式,可以根据需要指定字符集来进行转换,文中通过代... 目录前言一、常见重载形式二、示例代码三、getBytes(Charset charset)和getByt

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

使用Java编写一个字符脱敏工具类

《使用Java编写一个字符脱敏工具类》这篇文章主要为大家详细介绍了如何使用Java编写一个字符脱敏工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、字符脱敏工具类2、测试工具类3、测试结果1、字符脱敏工具类import lombok.extern.slf4j.Slf4j