顾名思义,getOrDefault的意思就是:首先尝试在map中get传入key的value,如果get不到即get到的value为空,则返回传入的参数中的默认值。
直接上JDK1.8中HashMap的getOrDefault()函数的源码。
@Override
public V getOrDefault(Object key, V defaultValue) {
Node<K,V> e;
return (e = getNode(hash(key), key)) == null ? defaultValue : e.value;
}
此函数传入两个参数,第一个为key,第二个参数是选择的默认value。
可以理解为:
if(map.contains(key){
return map.get(key);
} else {
return defaultValue;
}