computeIfAbsent()
1、首先会判断map中是否有对应的Key;
2.1、如果没有对应的Key,则会创建一个满足Value类型的数据结构放到Value的位置中;
2.2、如果有对应的Key,则会操作该Key对应的Value.
public static void main(String[] args) {
HashMap<String, List<Integer>> map = new HashMap<>();
/**
* 首先,Map中没有 "hadoop" 这个Key,所以会创建一个满足Value类型的数据结构放入到Key对应的Value中
* 随后对该Value对应的值进行操作,如下代码是:list.add(1)
*/
map.computeIfAbsent("hadoop", key -> new ArrayList<>()).add(1);
System.out.println(map);
/**
* Map中已经有 "hadoop" 这个 Key,所以会操作该Key对应的一个Value
* 如下代码,对Key对应的Value进行 list.add(2) 这个操作
*/
map.computeIfAbsent("hadoop", key -> new ArrayList<>()).add(2);
System.out.println(map);
}