zoukankan      html  css  js  c++  java
  • 遍历 HashMap 的 5 种最佳方式,我不信你全知道!

    原文:http://39sd.cn/85D8A

    作者:Ramesh Fadatare

    翻译:高行行 

    在本文中,我们将通过示例讨论在 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

    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());  
            }  
        }  
    }
    

    Output:

    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));  
            }  
        }  
    }
    

    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);  
            });  
        }  
    }
    

    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
    
    END
    
    【推荐阅读】
    再见,Navicat!这个IDEA的兄弟,真香!
    JAVA 线上故障排查完整套路!牛掰!
    
    浅析 VO、DTO、DO、PO 的概念、区别和用处!
    
    再见!Lombok ...
    
    优秀的代码都是如何分层的?
    
    阿里规定超过三张表禁止join,为啥?
    
    国产芯片制造有多烂?十年饮冰,热血难凉
    
    
    
  • 相关阅读:
    深入理解sizeof
    trie树详解
    高精度计算
    编写高效的Android代码
    Android Architecture
    AIDL Android中的远程接口
    性能测试常见术语
    软件与软件测试相关
    注解实现Springmvc+jsp步骤
    非注解实现SpringMvc+JSP (一般用不到 主要用于了解研究底层)
  • 原文地址:https://www.cnblogs.com/Java-Road/p/13236406.html
Copyright © 2011-2022 走看看