HashMap遍历详解(4种常用遍历方式)

HashMap遍历详解(4种常用遍历方式)-mikechen

HashMap遍历经常在Java集合框架使用到,下面给大家介绍4种常用的HashMap遍历方式。

1.for 循环遍历

For循环方式遍历经常用在HashMap遍历,如下所示:

// 创建并赋值 HashMap
 Map<Integer, String> map = new HashMap();

 map.put(1, "mike");
 map.put(2, "chen");
 
 // for 遍历
 for (Map.Entry<Integer, String> entry : map.entrySet()) {
     System.out.println(entry.getKey());
     System.out.println(entry.getValue());
 }

在 Java 中可以通过调用 HashMap 的 keySet() 方法获取其所有键的集合,然后使用 foreach 循环遍历键集合。

类似地,可以使用 values() 方法获取 HashMap 的所有值的集合,然后使用 foreach 循环遍历值集合。

 

2.迭代器遍历

如下所示:

//创建并赋值HashMap
 Map<Integer, String> map = new HashMap();

 map.put(1, "mike");
 map.put(2, "chen");
 
//迭代器遍历
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
 while (iterator.hasNext()) {
            Map.Entry<Integer, String> entry = iterator.next();
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
  }

在 Java 中可以通过调用 HashMap 的 entrySet() 方法获取其所有键值对的集合,并通过迭代器遍历集合中的每个键值对。

 

3.Lambda表达式遍历

在 Java 8 中,可以使用 HashMap 的 Lambda 表达式来遍历键值对。

如下所示:

//创建并赋值HashMap
 Map<Integer, String> map = new HashMap();

 map.put(1, "mike");
 map.put(2, "chen");
 
// 遍历
 map.forEach((key, value) -> {
            System.out.println(key);
            System.out.println(value);
 });

 

4.采用Streams遍历

要使用Streams遍历HashMap,可以将其转换为一个集合对象,然后调用Streams提供的遍历方法。

具体步骤如下:

  1. 使用HashMap的entrySet()方法获取键值对的集合对象Set<Map.Entry<K,V>>。
  2. 将集合对象转换为Stream对象,通过调用stream()方法实现。
  3. 调用Streams提供的遍历方法,例如forEach()、filter()、map()等,对集合对象进行遍历和处理

下面是一个使用Streams遍历HashMap并输出其所有键值对的示例代码:

//创建并赋值HashMap
 Map<Integer, String> map = new HashMap();

 map.put(1, "mike");
 map.put(2, "chen");
 
// 将HashMap转换为集合对象,并通过Stream遍历
  hashMap.entrySet().stream()
  .forEach(entry -> System.out.println(entry.getKey() + " - " + entry.getValue()));

以上就是HashMap遍历的4种常用方式,跟多HashMap原理,请查看:HashMap底层实现原理(图文超详解)

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法