日常的开发中我们经常遇到需要遍历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!
以上的几种遍历方式,除了第一种效率比较低,其他几种效率都比较高,所以建议使用后面几种遍历方式
网友评论