JAVA8 MAP新增的API
1.foreach,使用foreach可以很方便的对map进行遍历:
Map<String, String> map = new HashMap<String, String>(){
{
put("1","e");
put("2","e");
put("3","e");
put("4","e");
}
};
map.forEach((k,v)-> System.out.println(k));
2.putIfAbsent,自动检查key是否为null
Map<String, String> map = new HashMap<String, String>(){
{
put(null,"e"); //会存入
putIfAbsent(null, "e"); //不会存入
}
};
3.computeIfPresent,内置计算
Map<String, String> map = new HashMap<String, String>(){
{
put("1", "e");
put("2", "e");
put("3", "e");
}
};
map.computeIfPresent("2", (k, v) -> k.concat(v));
System.out.println(map.get("2"));//2e
map.computeIfPresent("2", (k, v) -> k.concat(v));
System.out.println(map.get("2"));//22e
4.remove(key,val),当传两个参数时表示,只有当key和value都匹配时才删除
Map<String, String> map = new HashMap<String, String>(){
{
put("1", "e");
put("2", "e");
put("3", "e");
}
};
map.remove("2", "a");
System.out.println(map.get("2")); // 依然存在,不会删除
5.getOrDefault(key,defalut)
Map<String, String> map = new HashMap<String, String>(){
{
put("1", "e");
put("2", "e");
put("3", "e");
}
};
map.remove("2", "e");
System.out.println(map.get("2")); // 依然存在,不会删除
System.out.println(map.getOrDefault("2","e"));//不存在获得默认值
6.merge,如果当前key不存在则存入Map,如果存在则合并之前的值
Map<String, String> map = new HashMap<String, String>(){
{
put("1", "e");
put("2", "e");
put("3", "e");
}
};
map.remove("2", "e");
map.merge("2", "a",(value,newValue)->value.concat(newValue));
System.out.println(map.get("2")); // a
map.merge("2", "a",(value,newValue)->value.concat(newValue));
System.out.println(map.get("2")); // aa