1、computeIfAbsent(K key,Function<? super K,? extend V> mappingFunction)
方法的参数:
- 第一个参数是HashMap的key
- 第二个参数是一个方法,叫做重新映射函数,用于计算值(就是这个value值通过这个方法重新计算后得到的结果),返回的就是value值。
方法的作用:
如果key 不存在,那么直接把key添加到map中
/**
*
*/
default V computeIfAbsent(K key,
Function<? super K, ? extends V> mappingFunction) {
// 判断这个函数的返回值是不是为null
Objects.requireNonNull(mappingFunction);
V v;
// 如果当前的key不存在
if ((v = get(key)) == null) {
V newValue;
// 获取方法的返回值
if ((newValue = mappingFunction.apply(key)) != null) {
// 将不存在的key,value put进HashMap中
put(key, newValue);
return newValue;
}
}
return v;
}