欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-09 18:44:28
原文地址:https://www.javaguides.net/2020/03/5 best ways to iterate over hashmap in java.html 作者:Ramesh Fadatare 翻译:高行行 https://www.toutiao.com/a6803887957 ......

原文地址:
作者:ramesh fadatare
翻译:高行行

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

  1. 使用 iterator 遍历 hashmap entryset

  2. 使用 iterator 遍历 hashmap keyset

  3. 使用 for-each 循环迭代 hashmap

  4. 使用 lambda 表达式遍历 hashmap

  5. 使用 stream api 遍历 hashmap

通过  [6]了解有关 lambda 表达式的信息

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

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

推荐去我的博客阅读更多:

1.java jvm、集合、多线程、新特性系列教程

2.spring mvc、spring boot、spring cloud 系列教程

3.maven、git、eclipse、intellij idea 系列工具教程

4.java、后端、架构、阿里巴巴等大厂最新面试题

生活很美好,明天见~