zoukankan      html  css  js  c++  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

  • 相关阅读:
    BZOJ 1013: [JSOI2008]球形空间产生器sphere
    BZOJ 1012: [JSOI2008]最大数maxnumber
    BZOJ 1011: [HNOI2008]遥远的行星
    BZOJ 1008: [HNOI2008]越狱
    BZOJ 1007: [HNOI2008]水平可见直线
    BZOJ 1003: [ZJOI2006]物流运输
    Spark core 总结
    SparkRDD算子(transformations算子和actions算子)
    SparkRDD算子初识
    初识Spark
  • 原文地址:https://www.cnblogs.com/miracle-luna/p/10995132.html
Copyright © 2011-2022 走看看