Java中5种Map遍历

🐓map的概念

Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的键值对。key和value都可以是任何引用类型的数据。Map的Key值为set,不允许重复,即同一个Map对象的任何两个key通过equals方法比较结果总是返回false。

通常会在后端面试中问到HashMap的底层原理,或者是机试中map的遍历,在公司中也经常会使用到map数据结构和list数据结构。

🐓map的遍历

 🚩 0.前置条件

 //创建一个Map
  Map<String, Integer> hashMap = new HashMap<>();
 //将map中存储数据
  hashMap.put("key1",1);
  hashMap.put("key2",2);
  hashMap.put("key3",3);

 🚩 1.iterator+entrySet写法

代码

 Iterator<Map.Entry<String, Integer>> iterator = hashMap.entrySet().iterator();
         while (iterator.hasNext()){
             Map.Entry<String, Integer> entry = iterator.next();
             System.out.print(entry.getKey());
             System.out.println(entry.getValue());
      }    

执行时间

 🚩 2.iterator+keyset写法

代码

Iterator<String> iterator1 = hashMap.keySet().iterator();
        while (iterator1.hasNext()){
            String key = iterator1.next();
            System.out.print(key);
            System.out.println(hashMap.get(key));
        }

执行时间

 🚩 3.加强for循环

代码

  for (Map.Entry<String,Integer> entry: hashMap.entrySet()) {
            System.out.print(entry.getKey());
            System.out.println(entry.getValue());
        }

执行时间

 🚩 4.lambda表达式遍历

代码

hashMap.forEach((key,value)->{
            System.out.print(key);
            System.out.println(value);
        });

执行时间

 🚩 5.使用steam流

代码

 hashMap.entrySet().stream().forEach((Map.Entry<String,Integer> entry)->{
            System.out.print(entry.getKey());
            System.out.println(entry.getValue());
        } );

执行时间

 🚩 遍历效率对比(每个系统性能不同,因机器而异,个人测试):

个人观点:

执行效率:iterator+entrySet>iterator+keyset>加强for循环>lambda表达式>steam

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天背单词了吗980

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值