code: public static <K, V> V getIfAbsent(Map<K, V> map, K key, Function0<? extends V> instanceBlock)
      {
          if (map instanceof UnsortedMapIterable)
          {
              return ((MapIterable<K, V>) map).getIfAbsent(key, instanceBlock);
          }
          V result = map.get(key);
          if (MapIterate.isAbsent(result, map, key))
          {
              result = instanceBlock.value();
          }
          return result;
      }
docs: Get and return the value in the Map that corresponds to the specified key, or if there is no value
  at the key, return the result of evaluating the specified {@link Function0}.