第一种当key存在的时候
HashMap<String, Object> map = new HashMap<>();
map.put("k1", 100);
map.put("k2", 200);
Object kn = map.computeIfAbsent("k1", key -> 300);
System.out.println(kn);----------------100返回key对应的value
System.out.println(map);-----------------{k1=100, k2=200}返回原map,k1值不会被替换
第二种当key不存在的时候
HashMap<String, Object> map = new HashMap<>();
map.put("k1", 100);
map.put("k2", 200);
Object kn = map.computeIfAbsent("kn", key -> 300);
System.out.println(kn);--------------300
System.out.println(map);-----------{kn=300, k1=100, k2=200}
对value进行操作
Set<String> set = new HashSet<>();
set.add("zhangsan");
map.put("aa", set);
map.computeIfAbsent(
"bb",
key -> {
return new HashSet<>();
})
.add("vvv");
System.out.println(map);---------------{bb=[vvv], aa=[zhangsan]}