zoukankan      html  css  js  c++  java
  • Map的使用及遍历方式

    Java中Map遍历的四种方式

     如果同时需要key和value推荐使用entrySet(第一种);
     如果只是获取key,或者value,推荐使用keySet或者values方式(第二种);
     如果需要在遍历过程中删除元素推荐使用Iterator(第三种);
     如果需要在遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中。
     
            // 循环遍历Map的4中方法
            Map<String, String> map = new HashMap<String, String>();
            map.put("牛郎", "织女");
            map.put("项羽", "虞姬");
            /**
             * 1. entrySet遍历,在键和值都需要时使用(最常用)推荐,尤其是容量大时
             */
            System.out.println("第一种:map.entrySet()遍历");
            for (Map.Entry<String, String> entry : map.entrySet()) {
                System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
            }
            /**
             * 2. 通过keySet或values来实现遍历,性能略低于第一种方式
             */
            System.out.println("
    第二种:map.keySet()或map.values()遍历");
            // 遍历map中的键
            for (String key : map.keySet()) {
                System.out.println("key = " + key);
            }
            // 遍历map中的值
            for (String value : map.values()) {
                System.out.println("key = " + value);
            }
            // 同时拿到key和value值:二次取值
            for (String key : map.keySet()) {
                System.out.println("key= " + key + " and value= " + map.get(key));
            }
            /**
             * 3. 使用Iterator遍历
             */
            System.out.println("
    第三种:Iterator方式遍历");
            Iterator<Entry<String, String>> it = map.entrySet().iterator();
            while (it.hasNext()) {
                Entry<String, String> entry = it.next();
                System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
            }
            /**
             * 4. java8 Lambda
             */
            // java8提供了Lambda表达式支持,语法看起来更简洁,可以同时拿到key和value,
            // 不过,经测试,性能低于entrySet,所以更推荐用entrySet的方式
            System.out.println("
    第四种:map.forEach方式遍历");
            map.forEach((key, value) -> {
                System.out.println(key + ":" + value);
            });

    控制台遍历结果如下:

    第一种:map.entrySet()遍历
    key = 项羽, value = 虞姬
    key = 牛郎, value = 织女

    第二种:map.keySet()或map.values()遍历
    key = 项羽
    key = 牛郎
    key = 虞姬
    key = 织女
    key= 项羽 and value= 虞姬
    key= 牛郎 and value= 织女

    第三种:Iterator方式遍历
    key = 项羽, value = 虞姬
    key = 牛郎, value = 织女

    
    

    第四种:map.forEach方式遍历
    项羽:虞姬
    牛郎:织女 

    Js中Map遍历的三种方式

    //遍历map方法一
    for(var key in map){
          console.log("遍历map方法一属性:" + key + ",值:" + map[key]);
        <%-- 遍历一次结束 --%>
        return;
    }
    //遍历map方法二 $.each(map,function(key,value){ console.info("遍历map方法二属性: " + key + ",值: " + value ); }) //遍历map方法三 $.map(map,function(value,key){ console.log("遍历map方法三属性:" + key + ",值:" + value); });
  • 相关阅读:
    年轻人的第一个 Spring Boot 应用,太爽了!
    面试问我 Java 逃逸分析,瞬间被秒杀了。。
    Spring Boot 配置文件 bootstrap vs application 到底有什么区别?
    坑爹的 Java 可变参数,把我整得够惨。。
    6月来了,Java还是第一!
    Eclipse 最常用的 10 组快捷键,个个牛逼!
    Spring Cloud Eureka 自我保护机制实战分析
    今天是 Java 诞生日,Java 24 岁了!
    厉害了,Dubbo 正式毕业!
    Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
  • 原文地址:https://www.cnblogs.com/mjtabu/p/map.html
Copyright © 2011-2022 走看看