Map遍历的几种方法

查看Map自带API 

map遍历方法:

 public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<Integer,String>();

        map.put(10,"first");
        map.put(20,"second");
        map.put(30,"third");

        /**
         * 通过map.keySet遍历key,通过map.get(key)取value
         *
         * 特点:适用于仅获取key的情况,同时也可通过key获取value,
         * 不过不推荐使用该方法获取value(原因:通过key值去计算对应的hash,然后再通过hash获取对应的结果值,会导致效率较低)
         */
        for (Integer key:map.keySet()
             ) {
            System.out.println("key is " + key +" and value is " + map.get(key));
        }

        /**
         * 通过map.entrySet()遍历该map,通过entry.getKey()获取key  entry.getValue()获取value
         *
         * 特点:同时需要key和value时推荐使用
         * hashMap内部的存储结构就是基于Entry的数组,在用这种方式进行遍历时,只需要遍历一次即可
         */
        for (Map.Entry<Integer,String> entry:map.entrySet()
             ) {
            System.out.println("key is " + entry.getKey() + " and value is " + entry.getValue());
        }

        /**
         * 通过map.entrySet()使用iterator遍历,it.getKey()获取key  it.getValue()获取value
         *
         *特点:效率同map.entrySet(),增加删除元素的功能,可以使用Iterator的remove方法删除元素
         */
        Iterator<Map.Entry<Integer,String>> iterator = map.entrySet().iterator();
        while(iterator.hasNext()){
            Map.Entry<Integer,String> it = iterator.next();
            //删除元素
            if("second".equals(it.getValue())){
                iterator.remove();
            }
            System.out.println("key is " + it.getKey() + " and value is "+ it.getValue());
        }

        /**
         * 通过map.values()获取所有的value遍历,适用于只获取value的情景
         *
         * 特点:适用于仅取value的情况
         */
        for (String value:map.values()
             ) {
            System.out.println("value is "+value);
        }


        /**
         * java8 Lambda表达式遍历
         */
        map.forEach((key, value) -> {
            System.out.println("Lambda-> key is " + key + "and value is" + value);
        });

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值