code: public <X extends Exception> V computeIfAbsent(K key, Try.Function<? super K, ? extends V, X> mappingFunction) throws X {
          N.checkArgNotNull(mappingFunction);
  
          final V oldValue = get(key);
  
          if (N.notNullOrEmpty(oldValue)) {
              return oldValue;
          }
  
          final V newValue = mappingFunction.apply(key);
  
          if (N.notNullOrEmpty(newValue)) {
              valueMap.put(key, newValue);
          }
  
          return newValue;
      }
docs: The implementation is equivalent to performing the following steps for this Multimap:
  
  <pre>
  final V oldValue = get(key);
  
  if (N.notNullOrEmpty(oldValue)) {
  return oldValue;
  }
  
  final V newValue = mappingFunction.apply(key);
  
  if (N.notNullOrEmpty(newValue)) {
  valueMap.put(key, newValue);
  }
  
  return newValue;
  </pre>
  
  @param key
  @param mappingFunction
  @return