Map的四种遍历方式
第一种,entrySet遍历(Map容量大时,优先使用)
import java.util.HashMap;
import java.util.Map;
public static void main ( String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 111);
map.put("b", 222);
map.put("c", 333);
//entrySet遍历,键 值都要的情况下
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
}
}
运行截图
第二种 keySet()
import java.util.HashMap;
import java.util.Map;
public static void main ( String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 111);
map.put("b", 222);
map.put("c", 333);
/**
*第二种
*通过keySet或values来实现遍历,性能略低于第一种方式
* 遍历map中的键
*/
for (String key : map.keySet()) {
System.out.println("mapKey = " + key);
}
for (Integer value : map.values()) {
System.out.println("mapKey = " + value);
}
}
第三种 Iterator遍历
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public static void main ( String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 111);
map.put("b", 222);
map.put("c", 333);
/**
* 第三种
* 使用Iterator遍历
*/
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
System.out.println("mapKey = " + entry.getKey() + ", mapValue = " + entry.getValue());
}
}
第四种 java 8 Lambda表达式
import java.util.HashMap;
import java.util.Map;
public static void main ( String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 111);
map.put("b", 222);
map.put("c", 333);
/**
* 第四种
* java8 Lambda表达式 可同时拿到key和value 更简洁
*/
map.forEach((key, value) -> {
System.out.println(key + ":" + value);
});
}