Java Map遍历常见的几种方式

本文介绍了Java中Map的三种遍历方式:entrySet、keySet和Java8的Stream,推荐在数据量大时使用forEach或Stream提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

日常工作中 Map 绝对是我们 Java 程序员高频使用的一种数据结构,那 Map 都有哪些遍历方式呢?这篇文章就带大家看一下,看看你经常使用的是哪一种。


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据格式

        Map<String, Object> map = new HashMap<>();
        map.put("aaa", "111111");
        map.put("bbbb", "222222");
        map.put("cccc", "33333");

二、遍历方式

1.通过entrySet来遍历

  for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println("key"+entry.getKey());
            System.out.println("value"+ entry.getValue());
        }
      for (Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator(); entries.hasNext(); ) {
            Map.Entry<String, Object> entry = entries.next();
            System.out.println("key"+entry.getKey());
            System.out.println("value"+ entry.getValue());
        }
   for (Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator(); entries.hasNext(); ) {
            Map.Entry<String, Object> entry = entries.next();
            System.out.println("key"+entry.getKey());
            System.out.println("value"+ entry.getValue());
        }

2.通过keySet 来遍历

代码如下(示例):

    for (String key : map.keySet()) {
            System.out.println("key"+key);
            System.out.println("value"+ map.get(key));
        }
        for (Iterator<String> key = map.keySet().iterator(); key.hasNext(); ) {
            String next = key.next();
            System.out.println("key"+next);
            System.out.println("value"+ map.get(next));
        }
       Iterator<String> it = map.keySet().iterator();
        while (it.hasNext()) {
            String next = it.next();
            System.out.println("key"+next);
            System.out.println("value"+ next);
        }

3.Java 8 的遍历方式

       map.forEach((key, value) -> {
            System.out.println("key"+key);
            System.out.println("value"+ value);
        });

        /**
         * 串行执行
         */
        map.keySet().stream().forEach(key -> {
            System.out.println(key + "=" + map.get(key));
        });

        /**
         * 多线程并行执行
         */

        map.keySet().parallelStream().forEach(key -> {
            System.out.println(key + "=" + map.get(key));
        });

推荐方式

当我们的集合数量很少的时候,基本上普通的遍历就可以搞定,不需要使用 JDK 8 的高级 API 来进行遍历,当我们的集合数量较大的时候,就可以考虑采用 JDK 8 的 forEach 或者 Stream 来进行遍历,这样的话效率更高。在普通的遍历方法中 entrySet() 的方法要比使用 keySet() 的方法好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值