Java中遍历Map的六种方法实现

 更新时间:2023年05月16日 08:32:11   作者:Janson666  
这篇文章主要介绍了Java中遍历Map的六种方法,Map是常用的数据结构之一,它提供了键值对的存储方式,可以方便地进行数据查找和操作,感兴趣想要详细了解可以参考下文

1. 遍历map方法

  • 通过 keySet() 方法获取全部的key值;
  • 通过 values() 方法获取全部的value值;
  • 通过遍历key值获取value值;
  • 通过entrySet()方法,进行遍历;
  • 使用lambda表达式;
  • 采用迭代器方式,方便进行元素的删除操作;

2. 方案实现

2.1 获取全部的key值

/**
 * 1.获取全部的key值
 */
public void testMap1(){
    HashMap<String, Object> map = new HashMap<>();
    Set<String> keySet = map.keySet();
    for (String key: keySet){
        System.out.println(key);
    }
}

2.2 获取全部的value值

/**
 * 2.获取全部的value值
 */
public void testMap2(){
    HashMap<String, Object> map = new HashMap<>();
    Collection<Object> values = map.values();
    for (Object value: values){
        System.out.println(value);
    }
}

2.3 通过遍历key值获取value值

/**
 * 3.通过遍历key值获取value值
 */
public void testMap3(){
    HashMap<String, Object> map = new HashMap<>();
    Set<String> keySet = map.keySet();
    for (String key: keySet){
        Object value = map.get(key);
        System.out.println(value);
    }
}

2.4 通过entrySet()方法进行遍历

/**
 * 4.通过entrySet()方法,进行遍历
 */
public void testMap4(){
    HashMap<String, Object> map = new HashMap<>();
    Set<Map.Entry<String, Object>> entrySet = map.entrySet();
    for (Map.Entry<String, Object> entry: entrySet){
        // entry代表map元素的一个对象,通过对象调用getValue()方法,获取value数据,也可以调用getKey()方法,获取key值
        Object value = entry.getValue();
        System.out.println(value);
    }
}

2.5 使用lambda表达式

/**
 * 5.使用lambda表达式
 */
public void testMap5(){
    HashMap<String, Object> map = new HashMap<>();
    map.forEach((key,value)->{
        // 直接获取key值和value值
        System.out.println("key: " + key + "value: " + value);
    });
}

2.6 采用迭代器方式方便进行元素的删除操作

/**
 * 6.采用迭代器方式,方便进行元素的删除操作
 */
@Test
public void testMap6(){
    HashMap<String, Object> map = new HashMap<>();
    map.put("77","6666");
    Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
    while (iterator.hasNext()){
        Map.Entry<String, Object> entry = iterator.next();
        if (entry.getKey().equals("77")){
            iterator.remove();
        }
    }
}

3. 总结

  • 如果只需要key值,则直接使用 keySet()方式;
  • 如果只需要value值,则直接使用values() 方式;
  • 如果需要进行遍历key,value,可以用entrySet() 或者 lambda表达式;
  • 如果需要进行遍历删除,可以用 iterator() 迭代器方式;

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

相关文章

  • 双重检查锁定模式Java中的陷阱案例

    双重检查锁定模式Java中的陷阱案例

    这篇文章主要介绍了双重检查锁定模式Java中的陷阱,双重检查锁定(也叫做双重检查锁定优化)是一种软件设计模式,它的作用是减少延迟初始化在多线程环境下获取锁的次数,尤其是单例模式下比较突出,想具体了解的小伙伴可以参考下面文章内容,附呦详细的举例说明
    2021-10-10
  • java加密算法--MD5加密和哈希散列带秘钥加密算法源码

    java加密算法--MD5加密和哈希散列带秘钥加密算法源码

    这篇文章主要介绍了java加密算法--MD5加密和哈希散列带秘钥加密算法源码的相关资料,这里附实例代码,帮助到大家学习理解,需要的朋友可以参考下
    2016-11-11
  • DWR异常情况处理常见方法解析

    DWR异常情况处理常见方法解析

    这篇文章主要介绍了DWR异常情况处理常见方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • MyBatis实现多表联合查询resultType的返回值

    MyBatis实现多表联合查询resultType的返回值

    这篇文章主要介绍了MyBatis多表联合查询resultType的返回值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java阻塞队列的实现及应用

    Java阻塞队列的实现及应用

    这篇文章主要介绍了剖析Java中阻塞队列的实现原理及应用场景,这里也对阻塞和非阻塞队列的不同之处进行了对比,需要的朋友可以参考下
    2021-10-10
  • Java运行时jar终端输出的中文日志乱码两种解决方式

    Java运行时jar终端输出的中文日志乱码两种解决方式

    jar包启动,今天java开发过来找,说jar包启动日志是乱码,这篇文章主要给大家介绍了关于Java运行时jar终端输出的中文日志乱码的两种解决方式,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • JSON序列化Redis读取出错问题解决方案

    JSON序列化Redis读取出错问题解决方案

    这篇文章主要介绍了JSON序列化Redis读取出错问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 详解SpringMVC组件之HandlerMapping(二)

    详解SpringMVC组件之HandlerMapping(二)

    这篇文章主要介绍了详解SpringMVC组件之HandlerMapping(二),HandlerMapping组件是Spring MVC核心组件,用来根据请求的request查找对应的Handler,在Spring MVC中,有各式各样的Web请求,每个请求都需要一个对应的Handler来处理,需要的朋友可以参考下
    2023-08-08
  • Spring Boot 非web应用程序的实现

    Spring Boot 非web应用程序的实现

    SpringBoot框架中,要创建一个非Web应用程序(纯 Java 程序),有两种方式,下面就来介绍一下,感兴趣的可以来了解一下
    2025-03-03
  • MyBatis查询、新增、更新与删除操作指南

    MyBatis查询、新增、更新与删除操作指南

    这篇文章主要给大家介绍了关于MyBatis查询、新增、更新与删除操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MyBatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06

最新评论