遍历 HashMap 的 5 种最佳方式,我不信你全知道!(附源码)

对于一个程序员,哪怕是刚开始工作或者刚开始学习的人,有一个是你一定很熟悉的技术,hashmap,这是我们在日常开发过程中比较常用,在面试的过程中也比较常问的技术,在hashmap的面试问题中,遍历又是重中之重,但是,你真的能够把五种hashmap的遍历方式都说明白吗?不见得。或者说你能直到是哪五种遍历方式,但是能手写出来吗?

ok,没问题,有则复习,无则学习,来看一下我整理的五种遍历方式吧

使用 Iterator 遍历 HashMap EntrySet

使用 Iterator 遍历 HashMap KeySet

使用 For-each 循环迭代 HashMap

使用 Lambda 表达式遍历 HashMap

使用 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

觉得对自己有帮助的,欢迎点赞关注转发

阅读 146

推荐阅读
目录