遍历HashMap的6种方式,不信你全都了解

本文详细介绍了在Java中遍历HashMap的六种不同方法,包括使用for-each、Iterator、lambda表达式等,对比了它们的性能差异,帮助读者理解如何根据实际需求选择最合适的遍历方式。

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

遍历HashMap

  本文将介绍遍历HashMap的六种方式,jdk版本1.8。HashMap的使用频率在所有map中确实属于比较高的。因为它可以满足我们大多数的场景了。

  首先,介绍几个本文中所涉及到的属性

  • values():
    方法是获取集合中的所有的值----没有键,没有对应关系,
  • KeySet():
    将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。
  • entrySet():
    Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的 Set 视图。 Map.Entry表示映射关系。entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 。

本文所用使用的demo

        Map<Integer,String> map=new HashMap<>();
        map.put(1,"java");
        map.put(2,"go");
        map.put(3,"python");
  1. 使用For-each遍历HashMap,先取key,通过key值取的value值(二次取值,性能差)

        for(Integer key:map.keySet()){
            System.out.println("Key:"+key+"value:"+map.get(key));
        }
  1. 使用Iterator遍历HashMap(二次取值,性能差)

        Iterator<Integer> iterator1=map.keySet().iterator();
        while (iterator1.hasNext()){
            Integer key=iterator1.next();
            System.out.println("Key:"+key+"value:"+map.get(key));
        }
  1. 使用For-each循环遍历HashMap.

        for(Map.Entry<Integer,String> entry : map.entrySet()){
            System.out.println("Key:"+entry.getKey()+"value:"+entry.getValue());
        }
  1. 使用Iterator遍历HashMap EntrySet

        Iterator<Entry<Integer,String>> iterator=map.entrySet().iterator();
        while (iterator.hasNext()){
            Entry entry= iterator.next();
            System.out.println("Key:"+entry.getKey()+"value:"+entry.getValue());
        }
  1. lambda表达式遍历HashMap

        map.forEach((key,value) -> {
            System.out.println("Key:"+key+"value:"+value);
        });
  1. 使用Stream API遍历HashMap

        map.entrySet().stream().forEach((entry) ->{
            System.out.println("Key:"+entry.getKey()+"value:"+entry.getValue());
        });
  1. 使用for-each遍历value

        for(String value:map.values()){
            System.out.println("value:"+value);
        }

总结

  1. 视需求而定, 需要key 和 value的值,还是选择使用那一种比较好。

本文完结,如有错误,烦请指正,江湖再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值