import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
HashMap<String,Object> map = new HashMap<>();
map.put("a","111");
map.put("b","222");
map.put("c","333");
System.out.println(map); // {a=111, b=222, c=333}
// keySet
for (String s:map.keySet()){
System.out.println(s+","+map.get(s)); // a,111 \n b,222 \n c,333
}
//entrySet
for (Map.Entry<String,Object> entry : map.entrySet()){
System.out.println(entry.getKey()+","+entry.getValue());// a,111 \n b,222 \n c,333
}
//jdk8
map.forEach((s,o)->System.out.println(s+","+o));// a,111 \n b,222 \n c,333
map.forEach((s,o)->{
if("a".equals(s)){
System.out.println(o);//111
}
});
}
}
1.keySet
先通过map.keySet()获取key的Set集合,然后遍历该集合,通过key获取对应的value,其实是遍历了两次,效率较低
2.entrySet
仅通过一次遍历就获取了key,value,效率要比keyset更高
3.Map.forEach
JDK8后推荐使用该方式,代码量更少