美文网首页宝藏屋
遍历HashMap的几种方式

遍历HashMap的几种方式

作者: 小石读史 | 来源:发表于2020-04-11 07:35 被阅读0次

日常的开发中我们经常遇到需要遍历HashMap的情况,那么常用的遍历方式有哪些呢,我总结了以下几种:

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

public class HashMapTest {
    public static void main(String[] args) {

        Map< String, String > coursesMap = new HashMap< String, String >();
        coursesMap.put("1", "Java");
        coursesMap.put("2", "Spring");
        coursesMap.put("3", "hello worrld!");

        //1.普通使用,两次取值(性能差)
        for(String key:coursesMap.keySet())
        {
            System.out.println(key);
            System.out.println(coursesMap.get(key));
        }

        // 2. 使用 Iterator 遍历 HashMap EntrySet
        Iterator<Map.Entry< String, String >> iterator = coursesMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry< String, String > entry = iterator.next();
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }

        //3. 使用 Iterator 遍历 HashMap KeySet
        Iterator< String > iterator2 = coursesMap.keySet().iterator();
        while (iterator2.hasNext()) {
            String key = iterator2.next();
            System.out.println(key);
            System.out.println(coursesMap.get(key));
        }

        // 4. 使用 For-each 循环遍历 HashMap。
        for (Map.Entry < String, String > entry: coursesMap.entrySet()) {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }

        // 5. 使用 Lambda 表达式遍历 HashMap
        coursesMap.forEach((key, value) -> {
            System.out.println(key);
            System.out.println(value);
        });

        // 6. 使用 Stream API 遍历 HashMap
        coursesMap.entrySet().stream().forEach((entry) -> {
                System.out.println(entry.getKey());
        System.out.println(entry.getValue());
        });
    }
}

结果都是一样的,如下:
1
Java
2
Spring
3
hello worrld!

以上的几种遍历方式,除了第一种效率比较低,其他几种效率都比较高,所以建议使用后面几种遍历方式

相关文章

网友评论

    本文标题:遍历HashMap的几种方式

    本文链接:https://www.haomeiwen.com/subject/anblmhtx.html