zoukankan      html  css  js  c++  java
  • 【Java】【集合类】Java Map集合 遍历 五种方式(包含 Lambda 表达式遍历)

    示例代码如下:

    复制代码
    package com.miracle.luna.lambda;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    
    /**
     * @author Miracle Luna
     * @version 1.0
     * @date 2019/6/9 21:41
     */
    public class TraverseMap {
        public static void main(String[] args) {
            Map<String, String> map = new HashMap<String, String>();
            map.put("key1", "value1");
            map.put("key2", "value2");
            map.put("key3", "value3");
    
            // 第一种遍历方式
            System.out.println("第一种遍历方式:通过遍历 Map 的 keySet,遍历 Key 和 Value");
            for (String key : map.keySet()) {
                System.out.println("Key: " + key + ", Value: " + map.get(key));
            }
    
            // 第二种遍历方式(如果在遍历过程中,有删除某些Key-Value的需求,可以使用这种遍历方式)
            System.out.println("
    第二种遍历方式:通过Iterator 迭代器遍历 Key 和 Value");
            Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
            while(iterator.hasNext()) {
                Map.Entry<String, String> entry = iterator.next();
                System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
            }
    
            // 第三种遍历方式(推荐,尤其是容量大时)
            System.out.println("
    第三种遍历方式:通过遍历 Map 的 entrySet,遍历 Key 和 Value");
            for (Map.Entry<String, String> entry : map.entrySet()) {
                System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
            }
    
            // 第四种遍历方式
            System.out.println("
    第四种遍历方式:通过遍历 Map 的 values,只能遍历 Value,获取不到对应的 Key");
            for (String value : map.values()) {
                System.out.println("Value: " + value);
            }
    
            // 第五种遍历方式(JDK 1.8支持的 Lambda 表达式,强烈推荐!!!)
            System.out.println("
    第五种遍历方式:通过 Lambda 表达式,遍历 Key 和 Value");
            map.forEach((key, value) -> {
                System.out.println("Key: " + key + ", Value: " + value);
            });
    
        }
    }
    复制代码

    运行结果如下:

    复制代码
    第一种遍历方式:通过遍历 Map 的 keySet,遍历 Key 和 Value
    Key: key1, Value: value1
    Key: key2, Value: value2
    Key: key3, Value: value3
    
    第二种遍历方式:通过Iterator 迭代器遍历 Key 和 Value
    Key: key1, Value: value1
    Key: key2, Value: value2
    Key: key3, Value: value3
    
    第三种遍历方式:通过遍历 Map 的 entrySet,遍历 Key 和 Value
    Key: key1, Value: value1
    Key: key2, Value: value2
    Key: key3, Value: value3
    
    第四种遍历方式:通过遍历 Map 的 values,只能遍历 Value,获取不到对应的 Key
    Value: value1
    Value: value2
    Value: value3
    
    第五种遍历方式:通过 Lambda 表达式,遍历 Key 和 Value
    Key: key1, Value: value1
    Key: key2, Value: value2
    Key: key3, Value: value3
    复制代码

    PS:

    总结,参考如下:

    Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)
    https://www.cnblogs.com/miracle-luna/p/10995539.html

    Array数组 遍历 四种方式(包含 Lambda 表达式遍历)
    https://www.cnblogs.com/miracle-luna/p/10995469.html

    List集合 遍历 四种方式(包含 Lambda 表达式遍历)
    https://www.cnblogs.com/miracle-luna/p/10995400.html

    Map集合 遍历 五种方式(包含 Lambda 表达式遍历)
    https://www.cnblogs.com/miracle-luna/p/10995132.html

  • 相关阅读:
    Visual Studio Installer打包安装项目VS2015
    在WinCE上播放声音、设置透明图片、系统音量 C#
    虚函数、抽象函数以及接口的区别
    Type 'System.IO.FileStream' with data contract name 'FileStream:http://schemas.datacontract.org/2004/07/System.IO' is not expected.
    项目中重新引用WCF报错
    为什么0.1+0.2=0.30000000000000004
    MVC自定义错误页404静态页
    DP 网易内推:合唱团
    TFBOY 养成记 一些比较好多文章。
    机器学习笔记:为什么要对数据进行归一化处理?
  • 原文地址:https://www.cnblogs.com/zzsuje/p/15109006.html
Copyright © 2011-2022 走看看