map的遍历方式「建议收藏」

map的遍历方式「建议收藏」@org.junit.TestpublicvoidtestHashMap(){Map<String,String>map=newHashMap<>(4);

大家好,又见面了,我是你们的朋友全栈君。

map的遍历方式「建议收藏」


@org.junit.Test
public void testHashMap() {
Map<String, String> map = new HashMap<>(4);
map.put(“a”, “抗美援朝”);
map.put(“b”, “唐山大地震”);
map.put(“c”, “我和我的祖国”);
map.put(“d”, “我和我的家乡”);

    System.out.println("------------------- map.keySet()-------------------------");
    //获取所有的 key,根据 key 取出对应的value
    for (String key : map.keySet()) {
        System.out.println("key:" + key + ",value:" + map.get(key));
    }
    System.out.println("------------------获取map种所有的value:map.values()--------------------------");
    //遍历所有的value
    for (String value : map.values()) {
        System.out.println("value:" + value);
    }
    System.out.println("-------------------获取键值对:map.entrySet()-------------------------");
    //取出对应的 key,value 键值对,容量大时推荐使用
    for (Map.Entry<String, String> entry : map.entrySet()) {
        System.out.println("键值对:" + entry);
        //获取 键值对的 key
        System.out.println("key:" + entry.getKey());
        //获取 键值对的 value
        System.out.println("value:" + entry.getValue());
    }

    System.out.println("--------------------- 通过 Map.entrySet使用iterator遍历 key 和 value -----------------------");
    Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
        Map.Entry<String, String> entry = iterator.next();
        System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());
    }

    System.out.println("-------------------- map.forEach JDK1.8 新特性 ----------------------");
    map.forEach((key, value) -> {
        System.out.println("key=" + key + ",value=" + value);
    });
}

推荐:
使用 entrySet 遍历 Map 类集合 KV,而不是 keySet 方式进行遍历。
说明: keySet 其实是遍历了 2 次,一次是转为 Iterator 对象,另一次是从 hashMap 中取出key 所对应的 value。而 entrySet 只是遍历了一次就把 key 和 value 都放到了 entry 中,效率更高。
如果是 JDK8,使用 Map.foreach 方法。
正例: values()返回的是 V 值集合,是一个 list 集合对象; keySet()返回的是 K 值集合,是一个 Set 集合对象; entrySet()返回的是 K-V 值组合

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155756.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ov7725摄像头–图像中间亮四周暗[通俗易懂]

    ov7725摄像头–图像中间亮四周暗[通俗易懂]使用OV7725摄像头采集图像进行商品识别,uvc调试过程中发现图像中间亮四周暗;网上找原因,说是lens的CRA和sensor的CRA不匹配;可以通过矫正透镜改进;查看手册,lenscorrection部分;果然有这部分介绍12 DealwithLens—处理Lens12.1 Lightfalloff—-光线脱落光线掉落意味着图像的角落比图像的中心更暗。它是由镜头引起的…

    2022年9月23日
    4
  • idea2021 for mac 激活码【在线注册码/序列号/破解码】

    idea2021 for mac 激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    47
  • ftp常用命令详解_ospf生成路由表的过程

    ftp常用命令详解_ospf生成路由表的过程在window下按window+r可打开DOS命令窗口,然后就可以输入FTP命令了。1.登录FTP服务器方法一:直接输入ftp加ip地址ftp192.168.10.xxx方法二:直接输入ftp,进入ftp服务后输入open加ip地址open192.168.10.xxx当连接成功后会让你进行身份验证,在输入密码时屏幕上没有任何显示,不用管,直接…

    2022年9月21日
    1
  • 使用yum卸载、安装jdk

    使用yum卸载、安装jdk由于EPICS工作环境下安装CSS,但CSS不支持开源jdk,所以首先需要卸载openjdk,然后再安装jdk-8u144-linux-x64.tar.gz(CSS只支持8及以上版本)。一、卸载,需卸载干净,不然会出各种覆盖问题,很麻烦!安装好的CentOS会自带OpenJdk,用命令java-version,会有下面的信息:javaversion"1.6.0"OpenJDK Run…

    2022年6月6日
    61
  • zookeeper入门教程_日语入门自学

    zookeeper入门教程_日语入门自学zookeeperwatcher架构zookeeper 配置中心分布式ID分布式锁集群搭建数据一致性协议:zab协议Zookeeper Leader选举Observer角色及其配置watcher架构客户端首先将Watcher注册到服务器,同时将Watch对象保存到客户端的Watch管理器中。当Zookeeper服务器监听到的数据发生变化时,服务器会通知客户端,接着客户端的Watch管理器会触发相关的Watcher来回调响应处理逻辑,从而完成整体的数据发布/订阅流程。javaAPIJava

    2022年8月8日
    6
  • java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…

    java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…一.Json对象与Json字符串的转化1.jQuery插件支持的转换方式:$.parseJSON(jsonstr);//jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:JSON.stringify(obj)将JSON转为字符串。JSON.par…

    2022年10月6日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号