前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java面试必知必会遍历map键值对的四种方式

java面试必知必会遍历map键值对的四种方式

作者头像
码农王同学
发布2020-03-25 12:05:59
1.6K0
发布2020-03-25 12:05:59
举报
文章被收录于专栏:后端Coder后端Coder

Map结构是一个键值对结构形式的集合,在平时的使用中也很常见,历史文章数据很早就写过使用map并发控制进行业务场景的处理,翻看历史文章就可找到。

这次主要以代码示例的方式进行介绍一下如何使用合理的方式进行处理map的键和值数据的。

代码语言:javascript
复制
进行map数据的模拟
 Map<String, Integer> map = new HashMap<>(16, 0.75f);
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
        map.put("e", 5);

第一种方式获取键值对集合entrySet,分别获取key,value

代码语言:javascript
复制
log.debug("获取键值对集合,分别获取key,value");
        for (Map.Entry entry : map.entrySet()) {
            log.info("map键:[{}],map值:[{}]", entry.getKey(), entry.getValue());
        }

第二种方式获取键集合,然后循环遍历key,本次使用了2种方式进行遍历推荐第二种方式,简单。

代码语言:javascript
复制
log.debug("获取键集合,然后循环遍历key,本次使用了2种方式进行遍历推荐第二种方式,简单");
        for (String key : map.keySet()) {
            log.info("map-key:[{}]", key);
        }
        map.keySet().forEach(x -> {
            log.info("map-key-for-each:[{}]", x);
        });

第三种方式获取值集合,然后循环遍历value,本地使用了2种方式进行遍历,推荐第一种方式,简单。

代码语言:javascript
复制
log.debug("获取值集合,然后循环遍历value,本地使用了2中方式进行遍历,推荐第一种方式,简单");
        Collection<Integer> values = map.values();
        values.stream().forEach(x -> log.info("map-value:[{}]", x));

        for (Integer value : map.values()
        ) {
            log.info("map-value-for:[{}]", value);
        }

第四种方式获取迭代器,效率不高,不推荐使用。

代码语言:javascript
复制
 log.debug("获取迭代器iterator然后根据迭代器进行获取key,value");
        Iterator<Map.Entry<String, Integer>> entryIterator = map.entrySet().iterator();
        while (entryIterator.hasNext()) {
            Map.Entry<String, Integer> entry = entryIterator.next();
            log.info("map键:[{}],map值:[{}]", entry.getKey(), entry.getValue());
        }
        log.debug("先获取key键集合,循环遍历key,根据key获取value");
        Set<String> keySet = map.keySet();
        keySet.forEach(k -> {
            log.info("map键:[{}],map值:[{}]", k, map.get(k));
        });
        for (String key : keySet
        ) {
            log.info("map-for map键:[{}],map值:[{}]", key, map.getOrDefault(key, null));
        }

以上就是目前自己总结的如何遍历map键值对数据的四种方式,推荐使用entrySet进行获取,这样的效率更高,可以增加数据集进行模拟一下。

最后给你们简单使用一下java8方式进行map数据的遍历输出。

代码语言:javascript
复制
      log.debug("使用java8提供的方法进行遍历一下");
        map.forEach((key, value) -> {
            log.info("map键:[{}],map值:[{}]", key, value);
        });

要分享的内容到这里就结束了,希望可以帮助到你,喜欢我文章的可以点击关注给个在看呗。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档