code: @Override
      public final V computeIfPresent(
              K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) {
          if (remappingFunction == null)
              throw new NullPointerException();
          long hash;
          return segment(segmentIndex(hash = keyHashCode(key)))
                  .computeIfPresent(this, hash, key, remappingFunction);
      }
docs: If the value for the specified key is present and non-null, attempts to compute a new mapping
  given the key and its current mapped value.
  
  <p>If the function returns {@code null}, the mapping is removed. If the function itself
  throws an (unchecked) exception, the exception is rethrown, and the current mapping is left
  unchanged.
  
  @param key key with which the specified value is to be associated
  @param remappingFunction the function to compute a value
  @return the new value associated with the specified key, or null if none
  @throws NullPointerException if the remappingFunction is null