• 【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

  • 相关阅读:
    Visitor Pattern (Visitor设计模式)
    JS DatePicker: jscalendar1.0___v1.51 (JS日期选择器)
    转:Mediator模式
    转: Debug with IIS Express
    101 LINQ Samples
    关于进程与线程:About Processes and Threads
    转:PureMVC示例 CafeTownsend
    Haskell Editor:Leksah & EclipseFP The Haskell plugin for Eclipse
    Haskell、C#、Java、C 程序执行效率比较 :Write your first parallel Haskell program
    SCJP: java exerciese 1
  • 原文地址:https://www.cnblogs.com/zzsuje/p/15109006.html
Copyright © 2020-2023  润新知