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集合取键和值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JAVA中的SPI思想介绍

    JAVA中的SPI思想介绍

    大家好,本篇文章主要讲的是JAVA中的SPI思想介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Eclipse 导出可执行Java工程/可执行Jar文件(包含第三方Jar包)

    Eclipse 导出可执行Java工程/可执行Jar文件(包含第三方Jar包)

    这篇文章主要介绍了Eclipse 导出可执行Java工程/可执行Jar文件(包含第三方Jar包)的相关资料,需要的朋友可以参考下
    2016-11-11
  • 教你怎么用Java操作Redis

    教你怎么用Java操作Redis

    今天带大家来学习怎么用Java操作Redis,文中有非常详细的介绍,对正在学习java的小伙伴们有很好的帮助,建议有redis基础并熟悉redis的基本数据类型命令的小伙伴学习,需要的朋友可以参考下
    2021-05-05
  • Java开发利器之Guava Cache的使用教程

    Java开发利器之Guava Cache的使用教程

    缓存技术被认为是减轻服务器负载、降低网络拥塞、增强Web可扩展性的有效途径之一。今天咱们就来聊聊Guava Cache本地缓存,感兴趣的可以了解一下
    2022-09-09
  • Java中BigDecimal类的add()的使用详解

    Java中BigDecimal类的add()的使用详解

    这篇文章主要介绍了Java中BigDecimal类的add()的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java 堆排序实例(大顶堆、小顶堆)

    Java 堆排序实例(大顶堆、小顶堆)

    下面小编就为大家分享一篇Java 堆排序实例(大顶堆、小顶堆),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Java实现图书馆借阅系统

    Java实现图书馆借阅系统

    这篇文章主要为大家详细介绍了Java实现图书馆借阅系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Java中ThreadLocal的用法和原理详解

    Java中ThreadLocal的用法和原理详解

    这篇文章主要为大家详细介绍了Java中ThreadLocal的用法和原理,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以了解一下
    2023-04-04
  • mybatis 返回Map类型key默认为大写问题

    mybatis 返回Map类型key默认为大写问题

    这篇文章主要介绍了mybatis 返回Map类型key默认为大写问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 浅谈Java源码ConcurrentHashMap

    浅谈Java源码ConcurrentHashMap

    最近刚入门java,觉得看源码挺有意思的,就记录一下一些常用类的源码吧,从而能够总结一些使用细节.本文对源码ConcurrentHashMap介绍的非常详细,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05

最新评论