遍历 HashMap 的 5 种最佳方式,我不信你全知道!

遍历 HashMap 的 5 种最佳方式,我不信你全知道!

Java技术栈;)

Java技术栈

微信号 javastack

功能介绍 专注分享Java技术干货,包括多线程、JVM、Spring Boot、Spring Cloud、Intellij IDEA、Dubbo、Zookeeper、Redis、架构设计、微服务、消息队列、Git、面试题、程序员攻略、最新动态等。

今天

在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方法。

  1. 使用 Iterator 遍历 HashMap EntrySet
  2. 使用 Iterator 遍历 HashMap KeySet
  3. 使用 For-each 循环迭代 HashMap
  4. 使用 Lambda 表达式遍历 HashMap
  5. 使用 Stream API 遍历 HashMap

1. 使用 Iterator 遍历 HashMap EntrySet[](http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247491954&idx=2&sn=7e74198f6cf3298462c472b964a5064b&chksm=eb506444dc27ed52f46a457147af791a01ad3a6084541df9d79a7a0e4b3ba334910ad32552c9&scene=21#wechat_redirect)

[`package com.java.tutorials.iterations;  

import java.util.HashMap;  
import java.util.Iterator;  
import java.util.Map;  
import java.util.Map.Entry;  

/**  
 * 在 Java 中遍历 HashMap 的5种最佳方法  
 * @author Ramesh Fadatare  
 *  
 */  
public class IterateHashMapExample {  
    public static void main(String[] args) {  
        // 1. 使用 Iterator 遍历 HashMap EntrySet  
        Map < Integer, String > coursesMap = new HashMap < Integer, String > ();  
        coursesMap.put(1, "C");  
        coursesMap.put(2, "C++");  
        coursesMap.put(3, "Java");  
        coursesMap.put(4, "Spring Framework");  
        coursesMap.put(5, "Hibernate ORM framework");  

        Iterator < Entry < Integer, String >> iterator = coursesMap.entrySet().iterator();  
        while (iterator.hasNext()) {  
            Entry < Integer, String > entry = iterator.next();  
            System.out.println(entry.getKey());  
            System.out.println(entry.getValue());  
        }  
    }  
}
`](http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247491954&idx=2&sn=7e74198f6cf3298462c472b964a5064b&chksm=eb506444dc27ed52f46a457147af791a01ad3a6084541df9d79a7a0e4b3ba334910ad32552c9&scene=21#wechat_redirect)

Output:

1  C  2  C++  3  Java  4  Spring Framework  5  Hibernate ORM framework

2. 使用 Iterator 遍历 HashMap KeySet[](http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247492216&idx=2&sn=8d782298916fe6a951888cdd12a87bfd&chksm=eb50674edc27ee5843bc9bd5044ccf39a85a797e2aed19e406855f83048991fa61618922537d&scene=21#wechat_redirect)

[`package com.java.tutorials.iterations;  

import java.util.HashMap;  
import java.util.Iterator;  
import java.util.Map;  

/**  
 * 在 Java 中遍历 HashMap 的5种最佳方法  
 * @author Ramesh Fadatare  
 *  
 */  
public class IterateHashMapExample {  
    public static void main(String[] args) {  
        Map < Integer, String > coursesMap = new HashMap < Integer, String > ();  
        coursesMap.put(1, "C");  
        coursesMap.put(2, "C++");  
        coursesMap.put(3, "Java");  
        coursesMap.put(4, "Spring Framework");  
        coursesMap.put(5, "Hibernate ORM framework");  

        // 2. 使用 Iterator 遍历 HashMap KeySet  
        Iterator < Integer > iterator = coursesMap.keySet().iterator();  
        while (iterator.hasNext()) {  
            Integer key = iterator.next();  
            System.out.println(key);  
            System.out.println(coursesMap.get(key));  
        }  
    }  
}
`](http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247492216&idx=2&sn=8d782298916fe6a951888cdd12a87bfd&chksm=eb50674edc27ee5843bc9bd5044ccf39a85a797e2aed19e406855f83048991fa61618922537d&scene=21#wechat_redirect)

Output:

1  C  2  C++  3  Java  4  Spring Framework  5  Hibernate ORM framework  

3. 使用 For-each 循环遍历 HashMap

package com.java.tutorials.iterations;  import java.util.HashMap;  import java.util.Map;  /**   * 在 Java 中遍历 HashMap 的5种最佳方法   * @author Ramesh Fadatare   *   */  public class IterateHashMapExample {      public static void main(String[] args) {          Map < Integer, String > coursesMap = new HashMap < Integer, String > ();          coursesMap.put(1, "C");          coursesMap.put(2, "C++");          coursesMap.put(3, "Java");          coursesMap.put(4, "Spring Framework");          coursesMap.put(5, "Hibernate ORM framework");          // 3. 使用 For-each 循环遍历 HashMap          for (Map.Entry < Integer, String > entry: coursesMap.entrySet()) {              System.out.println(entry.getKey());              System.out.println(entry.getValue());          }      }  }

Output:

1  C  2  C++  3  Java  4  Spring Framework  5  Hibernate ORM framework

4. 使用 Lambda 表达式遍历 HashMap[](http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247490334&idx=1&sn=45e3daa153a744ada788d2f4de199192&chksm=eb539e28dc24173e66d7fc010ac5c7d4fc6e69cbcc722ecc07df25b3344d63852c0e367f3904&scene=21#wechat_redirect)

[`package com.java.tutorials.iterations;  

import java.util.HashMap;  
import java.util.Map;  

/**  
 * 在 Java 中遍历 HashMap 的5种最佳方法  
 * @author Ramesh Fadatare  
 *  
 */  
public class IterateHashMapExample {  
    public static void main(String[] args) {  
        Map < Integer, String > coursesMap = new HashMap < Integer, String > ();  
        coursesMap.put(1, "C");  
        coursesMap.put(2, "C++");  
        coursesMap.put(3, "Java");  
        coursesMap.put(4, "Spring Framework");  
        coursesMap.put(5, "Hibernate ORM framework");  

        // 4. 使用 Lambda 表达式遍历 HashMap  
        coursesMap.forEach((key, value) -> {  
            System.out.println(key);  
            System.out.println(value);  
        });  
    }  
}
`](http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247490334&idx=1&sn=45e3daa153a744ada788d2f4de199192&chksm=eb539e28dc24173e66d7fc010ac5c7d4fc6e69cbcc722ecc07df25b3344d63852c0e367f3904&scene=21#wechat_redirect)

Output:

1  C  2  C++  3  Java  4  Spring Framework  5  Hibernate ORM framework

5. 使用 Stream API 遍历 HashMap

package com.java.tutorials.iterations;  import java.util.HashMap;  import java.util.Map;  /**   * 在 Java 中遍历 HashMap 的5种最佳方法   * @author Ramesh Fadatare   *   */  public class IterateHashMapExample {      public static void main(String[] args) {          Map < Integer, String > coursesMap = new HashMap < Integer, String > ();          coursesMap.put(1, "C");          coursesMap.put(2, "C++");          coursesMap.put(3, "Java");          coursesMap.put(4, "Spring Framework");          coursesMap.put(5, "Hibernate ORM framework");          // 5. 使用 Stream API 遍历 HashMap          coursesMap.entrySet().stream().forEach((entry) - > {              System.out.println(entry.getKey());              System.out.println(entry.getValue());          });      }  }

Output:

1  C  2  C++  3  Java  4  Spring Framework  5  Hibernate ORM framework

关注微信公众号:Java技术栈,在后台回复:java,可以获取我整理的 N 篇最新 Java 教程,都是干货。

原文:https://www.javaguides.net/2020/03/5-best-ways-to-iterate-over-hashmap-in-java.html

作者:Ramesh Fadatare

翻译:高行行
https://www.toutiao.com/a6803887957418705420/

END

学习资料:

分享一份最新 Java 架构师学习资料

最近热文:

1、重磅:Java 14 正式发布了!

2、Java 14 之模式匹配,非常赞的新特性!

3、数据库连接池到底应该设多大?

4、从 0 编写自己的第一款 IDEA 插件!

5、一次 Druid 连接池泄露引发的血案!

6、每个程序员都必须掌握的 8 种数据结构!

7、单例模式的 8 种写法,非常全!

8、怎么用追 MM 来理解 23 种设计模式?

9、[](http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247492884&idx=2&sn=dcf992badf5ab70c22306e8e4331fbf6&chksm=eb506022dc27e934e4945f924be544853267f79b7337b3091b7743ddcde7bce4ae4cf3682d1d&scene=21#wechat_redirect)我去,同事居然用明文存储密码!!!

10、以淘宝为例,解析大型电商服务端架构!

公众号干货实在太多,扫码关注Java技术栈公众号阅读更多。

点击「阅读原文」带你飞~


Original url: Access
Created at: 2020-04-01 11:14:59
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论