作者:Ramesh Fadatare
原文:https://www.javaguides.net/2020/03/5-best-ways-to-iterate-over-hashmap-in-java.html
翻译:高行行
https://www.toutiao.com/a6803887957418705420/
在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方法。
使用 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 String > coursesMap = new HashMap 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 String >> iterator = coursesMap.entrySet().iterator();
while (iterator.hasNext()) {
Entry 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 String > coursesMap = new HashMap 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 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 String > coursesMap = new HashMap 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 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 coursesMap = new HashMap ();
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 coursesMap = new HashMap ();
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
【面试题专栏】
2020年Java基础高频面试题汇总(1.4W字详细解析)
全网最全Spring系列面试题129道(附答案解析)
2万字Java并发编程面试题整理(含答案,建议收藏)
85道Java微服务面试题整理(助力2020面试)
【2020年大厂面试必备】JVM与性能调优知识点整理
2019年面试官最喜欢问的28道ZooKeeper面试题
2019年全网最热门的123个Java并发面试题总结
全网最热门的119个Spring问题,哪些你还不会?
2020面试还搞不懂MyBatis?看看这27道面试题!(含答案和思维导图)
2020年去一线大厂面试先过SSM框架这一关!
Spring Cloud+Spring Boot高频面试题解析
2019年常见的Linux面试题及答案解析,哪些你还不会?
2019年常见Elasticsearch面试题答案解析
18道kafka高频面试题哪些你还不会?(含答案和思维导图)
2019年12道RabbitMQ高频面试题你都会了吗?(含答案解析)
2019年Dubbo你掌握的如何?快看看这30道高频面试题!
2019年228道Java中高级面试题(8),哪些你还不会?
你在看吗?