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

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 遍历 HashMap 的 5 种最佳方式,我不信你全知道!

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

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

  • 使用 Iterator 遍历 HashMap EntrySet
  • 使用 Iterator 遍历 HashMap KeySet
  • 使用 For-each 循环迭代 HashMap
  • 使用 Lambda 表达式遍历 HashMap
  • 使用 Stream API 遍历 HashMap
  • 使用 Iterator 遍历 HashMap KeySet

    使用 Lambda 表达式遍历 HashMap

    1. 使用 Iterator 遍历 HashMap EntrySet

    
    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());  
            }  
        }  
    }
    </code></a></pre>
    Output:
    <pre style="font-size: inherit;color: inherit;line-height: inherit;"><code style="margin-right: 2px;margin-left: 2px;line-height: 18px;font-size: 14px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;border-radius: 5px;background: rgb(43, 48, 59);color: rgb(192, 197, 206);padding: 0.5em;overflow-wrap: normal !important;word-break: normal !important;overflow: auto !important;display: -webkit-box !important;text-align: left;">1  
    C  
    2  
    C++  
    3  
    Java  
    4  
    Spring Framework  
    5  
    Hibernate ORM framework
    

    2. 使用 Iterator 遍历 HashMap KeySet

    
    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));  
            }  
        }  
    }
    </code></a><code style="margin-right: 2px;margin-left: 2px;line-height: 18px;font-size: 14px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;border-radius: 5px;background: rgb(43, 48, 59);color: rgb(192, 197, 206);padding: 0.5em;overflow-wrap: normal !important;word-break: normal !important;overflow: auto !important;display: -webkit-box !important;text-align: left;">
    

    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

    
    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);  
            });  
        }  
    }
    </code></a><code style="margin-right: 2px;margin-left: 2px;line-height: 18px;font-size: 14px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;border-radius: 5px;background: rgb(43, 48, 59);color: rgb(192, 197, 206);padding: 0.5em;overflow-wrap: normal !important;word-break: normal !important;overflow: auto !important;display: -webkit-box !important;text-align: left;">
    

    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
    

    原文: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面试题专栏

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

    欢迎长按下图关注公众号后端技术精选

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

    原文始发于微信公众号(后端技术精选):遍历 HashMap 的 5 种最佳方式,我不信你全知道!

    本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

    本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

    原文链接:blog.ouyangsihai.cn >> 遍历 HashMap 的 5 种最佳方式,我不信你全知道!


     上一篇
    最通俗易懂的 HashMap 源码分析解读 最通俗易懂的 HashMap 源码分析解读
    来源:未读代码 HashMap 作为最常用的集合类之一,有必要深入浅出的了解一下。这篇文章会深入到 HashMap 源码,刨析它的存储结构以及工作机制。 1. HashMap 的存储结构HashMap 的数据存储结构是一个 NodeK,V
    下一篇 
    Java中的原生动态代理和CGLIB动态代理的原理,我不信你全知道! Java中的原生动态代理和CGLIB动态代理的原理,我不信你全知道!
    作者:CarpenterLee cnblogs.com/CarpenterLee/p/8241042.html cnblogs.com/CarpenterLee/p/8241042.html