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预加载与懒加载实现方法超详细讲解

    SpringBoot预加载与懒加载实现方法超详细讲解

    Spring一直被诟病启动时间慢,可Spring/SpringBoot是轻量级的框架。因为当Spring项目越来越大的时候,在启动时加载和初始化Bean就会变得越来越慢,很多时候我们在启动时并不需要加载全部的Bean,在调用时再加载就行,那这就需要预加载与懒加载的功能了
    2022-11-11
  • 解析web.xml中在Servlet中获取context-param和init-param内的参数

    解析web.xml中在Servlet中获取context-param和init-param内的参数

    本篇文章是对web.xml中在Servlet中获取context-param和init-param内的参数进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • 一篇文章教会你使用java爬取想要的资源

    一篇文章教会你使用java爬取想要的资源

    这篇文章主要介绍了使用java爬虫爬取想要的资源,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 使用Java打印数字组成的魔方阵及字符组成的钻石图形

    使用Java打印数字组成的魔方阵及字符组成的钻石图形

    这篇文章主要介绍了使用Java打印数字组成的魔方阵及字符组成的钻石图形,可作为一些CLI程序界面的基础部分,需要的朋友可以参考下
    2016-03-03
  • 使用Java实现压缩文件夹并打包下载

    使用Java实现压缩文件夹并打包下载

    这篇文章主要为大家详细介绍了如何使用Java实现压缩文件夹并打包下载,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • 实现java简单的线程池

    实现java简单的线程池

    这篇文章主要为大家详细介绍了java简单实现多线程,及java爬虫使用线程池实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java 九宫重排(满分解法)

    Java 九宫重排(满分解法)

    本文主要介绍了Java 九宫重排(满分解法),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • feign如何打印出http请求

    feign如何打印出http请求

    这篇文章主要介绍了feign如何打印出http请求,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 轻松了解java中Caffeine高性能缓存库

    轻松了解java中Caffeine高性能缓存库

    本文我们将学习了解到用于Java的高性能缓存库Caffeine,其使用Window TinyLfu清理策略,提供最佳的命中率
    2021-08-08
  • Java8 lambda表达式2种常用方法代码解析

    Java8 lambda表达式2种常用方法代码解析

    这篇文章主要介绍了Java8 lambda表达式2种常用方法代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论