Java遍历Map可以有以下五种方式。根据不同的场景,我们可以选择不同的遍历方式。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
Map<String, String> countryMap = new HashMap<>();
countryMap.put("1", "中国");
countryMap.put("2", "美国");
countryMap.put("3", "俄罗斯");
countryMap.put("4", "英国");
countryMap.put("5", "法国");
// Map遍历方式一:通过values()遍历所有的value,缺点是不能遍历key。
System.out.println("Map遍历方式一");
for (String value : countryMap.values()) {
System.out.println(value);
}
// Map遍历方式二:先获取key,再通过key取value。
System.out.println("Map遍历方式二");
for (String key : countryMap.keySet()) {
System.out.println(key + ":" + countryMap.get(key));
}
// Map遍历方式三:先获取Map.entrySet的迭代器,再通过iterator遍历
System.out.println("Map遍历方式三");
Set<Map.Entry<String, String>> entries = countryMap.entrySet();
Iterator<Map.Entry<String, String>> it = entries.iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}
// Map遍历方式四:推荐。相比于方式三需要获取个迭代器,更方便高效。
System.out.println("Map遍历方式四");
for (Map.Entry<String, String> entry : countryMap.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}
// Map遍历方式五:JDK8的新增的遍历方式。->是Java 8 Lambda 表达式,感兴趣的可自行百度学习。
System.out.println("Map遍历方式五");
countryMap.forEach((key, value) -> {
System.out.println(key + ":" + value);
});
}
}
打印结果:
Map遍历方式一
中国
美国
俄罗斯
英国
法国
Map遍历方式二
1:中国
2:美国
3:俄罗斯
4:英国
5:法国
Map遍历方式三
1:中国
2:美国
3:俄罗斯
4:英国
5:法国
Map遍历方式四
1:中国
2:美国
3:俄罗斯
4:英国
5:法国
Map遍历方式五
1:中国
2:美国
3:俄罗斯
4:英国
5:法国