java Map集合中取键和值的4种方式举例

 更新时间:2024年01月28日 16:20:04   作者:愚公搬程序  
Java中的Map是一种键值对存储的数据结构,其中每个键都唯一,与一个值相关联,这篇文章主要给大家介绍了关于java Map集合中取键和值的4种方式,文中通过代码介绍的非常详细,需要的朋友可以参考下

1、使用Map的keySet()方法获取键集合,再使用forEach循环遍历键集合,通过Map的get()方法获取对应的值。例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

// 获取键集合,遍历键集合,通过get()方法获取对应的值
Set<String> keySet = map.keySet();
for (String key : keySet) {
   Integer value = map.get(key);
   System.out.println("key:" + key + ",value:" + value);
}

2、使用Map的values()方法获取值集合,再使用forEach循环遍历值集合。例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

// 获取值集合,遍历值集合
Collection<Integer> values = map.values();
for (Integer value : values) {
   System.out.println("value:" + value);
}

3、使用Map的entrySet()方法获取键值对集合,再使用forEach循环遍历键值对集合,通过Entry的getKey()方法获取键,通过Entry的getValue()方法获取值。例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

// 获取键值对集合,遍历键值对集合,通过Entry的getKey()方法获取键,通过Entry的getValue()方法获取值
Set<Entry<String, Integer>> entrySet = map.entrySet();
for (Entry<String, Integer> entry : entrySet) {
   String key = entry.getKey();
   Integer value = entry.getValue();
   System.out.println("key:" + key + ",value:" + value);
}

4、使用Java8的Stream流获取键值对集合,通过map方法获取键或值的流。例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

// 获取键流,遍历键流
map.keySet().stream().forEach(key -> System.out.println("key:" + key));

// 获取值流,遍历值流
map.values().stream().forEach(value -> System.out.println("value:" + value));

// 获取键值对流,遍历键值对流,通过Entry的getKey()方法获取键,通过Entry的getValue()方法获取值
map.entrySet().stream().forEach(entry -> System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue()));

附:遍历获取Map集合中的键和值

写在前面:前段时间找工作,遇到一道面试题,要求遍历取出Map集合的键和值,没有要求使用多种方法,做完面试题就想着整理一下,让自己多多积累。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Base2 {
    /**
     *
     * @param args
     */
    public static void main(String[] args) {
        Map<String, Object> map = new HashMap<>();
        map.put("1", "张三");
        map.put("2", "李四");
        map.put("3", "王五");
        //方法一:使用keySet()方法将key放入set中
        Set<String> set = map.keySet();//先使用set得到map的所有key
        Iterator<String> it = set.iterator();//构造set的迭代器
        while (it.hasNext()) {
            String key = it.next();
            Object value = map.get(key);
            System.out.println("key" + key + "value" + value);
        }
        //方法二 : 用增强for循环来代替 iterator
        Set<String> set1 = map.keySet();
        for (String key1 : set1) {
            Object value1 = map.get(key1);
            System.out.println("key" + key1 + "value" + value1);
            //方法三 :将map的键值对用entrySet方法取出,再放入到set当中
            Set<Map.Entry<String, Object>> map1 = map.entrySet();
            for (Map.Entry<String, Object> maps :
                      map1) {
                String key2 = maps.getKey();
                Object Value2 = maps.getValue();
                System.out.println("key" + key2 + "value" + Value2);
            }
            //方法四
            Iterator iterator = map.entrySet().iterator();
            while (iterator.hasNext()){
                Map.Entry maps = ( Map.Entry)iterator.next();
                Object key = maps.getKey();
                Object value = maps.getValue();
                System.out.println("key" + key + "value" + value);
            }
        }
    }}

总结 

到此这篇关于java Map集合中取键和值的4种方式的文章就介绍到这了,更多相关java Map集合取键和值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用springboot配置文件yml中的map形式

    使用springboot配置文件yml中的map形式

    这篇文章主要介绍了springboot配置文件yml中的map形式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • SpringBoot中整合Minio文件存储的安装部署过程

    SpringBoot中整合Minio文件存储的安装部署过程

    这篇文章主要介绍了SpringBoot整合Minio文件存储的相关知识,详细介绍了Minio安装部署过程,需要的朋友可以参考下
    2022-04-04
  • java项目中的多线程实践记录

    java项目中的多线程实践记录

    项目开发中对于一些数据的处理需要用到多线程,比如文件的批量上传,数据库的分批写入,大文件的分段下载等,主要涉及到多线程的一些知识,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下
    2021-11-11
  • SpringMVC核心原理与前后端数据交互机制详解(推荐)

    SpringMVC核心原理与前后端数据交互机制详解(推荐)

    文章详细介绍了SpringMVC的核心原理及前后端数据交互机制,包括SpringMVC的概述、架构、工作流程、请求参数绑定、JSON数据处理、数据验证、异常处理以及最佳实践,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • 如何使用Gradle实现类似Maven的profiles功能

    如何使用Gradle实现类似Maven的profiles功能

    这篇文章主要介绍了如何使用Gradle实现类似Maven的profiles功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • Spring中使用Hystrix实现熔断详解

    Spring中使用Hystrix实现熔断详解

    这篇文章主要介绍了Java中使用Hystrix实现熔断详解,对于第一个问题,查看hystrix源码可以看到,如果有缓存配置是优先使用的缓存的,因此如果配置更新,必须要更新缓存,不能使用Hystrix.reset()方法来更新缓存,需要的朋友可以参考下
    2023-12-12
  • Java使用Spire.XLS for Java实现设置Excel行高列宽

    Java使用Spire.XLS for Java实现设置Excel行高列宽

    在日常的数据处理和报表生成过程中,Excel 是最常见的文件格式之一,本文将介绍如何通过 Java 使用 Spire.XLS for Java 设置和调整 Excel 的行高与列宽,从而实现高效且美观的报表输出
    2025-08-08
  • 我总结的几种@Transactional失效原因说明

    我总结的几种@Transactional失效原因说明

    这篇文章主要是我总结的几种@Transactional失效原因说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Java使用ShardingSphere实现数据库分片的策略指南

    Java使用ShardingSphere实现数据库分片的策略指南

    随着业务数据量的爆炸式增长,数据库分片作为解决大数据量存储和查询性能问题的核心技术,已成为现代分布式系统架构的重要组成部分,ShardingSphere作为一套开源的分布式数据库解决方案,提供了强大的数据分片功能,本文将深入探讨ShardingSphere的核心分片策略
    2025-08-08
  • Java组件开发之文件压缩与解压详解

    Java组件开发之文件压缩与解压详解

    这篇文章主要为大家详细介绍了如何使用Java开发一个文件压缩与解压组件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10

最新评论