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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dos攻击防范 php,DOS攻击和DDOS攻击的区别「建议收藏」

    dos攻击防范 php,DOS攻击和DDOS攻击的区别「建议收藏」DOS攻击和DDOS攻击的区别DDOS和DOS攻击都会使计算机或网络无法提供正常的服务;而DDOS和DOS的区别在于,DDOS是一种分布式拒绝服务,会将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。如何防DOS攻击和DDOS攻击1、带宽资源要充足带宽直接决定了抗DDOS攻击的能力,至少要选择100M带宽的,越多越好。2、服务器的硬件配置在带宽以…

    2022年9月30日
    2
  • SQL 配置管理器找不到了

    SQL 配置管理器找不到了想用数据库建立远程连接,于是想把数据库改成IP地址连接,突然发现配置管理器不见了!!!!???百度了一下,有人说可以用win+R打开后,输入SQLServerManager10.msc后确定,就可以找到了,大家可以试试,不知道为什么我的不行。于是,花了点时间找了一下,发现,点击计算机——>右键——>管理——>服务应用程序——>终于找到了。。。…

    2022年7月21日
    11
  • php中的ceil和floo以及round函数「建议收藏」

    php中的ceil和floo以及round函数「建议收藏」php中的ceil和floo以及round函数

    2022年4月21日
    52
  • oracle错误 904,IMP-00058: 遇到 ORACLE 错误 904

    oracle错误 904,IMP-00058: 遇到 ORACLE 错误 904我将A服务器下的导入B服务器时其中一个表出现以下错误,出错误后我单独将这个表导出,然后导入。B服务器下已有T_CALLREORDS表,并且已有新数据,T_CALLREORDS有外键约束T_USER表。我的语句如下C:UsersAdministrator>impgxcfkefu/gxcfkefufull=yfile=e:/gxcf_T_CAL…显示全部我将A服务器下的导入B服务器时…

    2026年2月2日
    3
  • RAID卡简介[通俗易懂]

    RAID卡简介[通俗易懂]参考资料:https://blog.csdn.net/cymm_liu/article/details/8656154?spm=a2c4e.10696291.0.0.406119a4YLoXPK0、RAID卡简介RAID卡有自己的CPU、CacheMemory,通过集成或借用主板上的SCSI控制器来管理硬盘,可以称之为一个智能化的设备。RAID卡的分…

    2025年6月16日
    3
  • 联想st510开卡软件_无力吐槽的一单联想ST510固态硬盘数据恢复

    联想st510开卡软件_无力吐槽的一单联想ST510固态硬盘数据恢复接苏州IT服务商客户送修一块联想ST510固态硬盘需要恢复数据,故障现象为SSD可以正常识别,而且识别的速度也是很快的!,我们接上PC3000访问第一扇区显示代码是错误的,然后读取其它扇区就BSY状态了,必须从新断电加电才可以读取!(从经验判断这块SSD的主控应该是SM2258XT或SM2256K,PC3000SSD加载恢复的速度正常是8M每秒左右)由于这块硬盘转手次数太多(起码转了4手)也没…

    2025年12月1日
    7

发表回复

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

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