protected void _initializeWithMap(Map<K, V> map, NullHandling nullHandling) {
    Map<K, V> store = _initializeWithCapacity(map.size());
    if (map instanceof NSDictionary<?, ?> || nullHandling == NullHandling.NoCheck)
      store.putAll(map);
    else {
      for (Map.Entry<K, V> entry : map.entrySet()) {
        if (entry.getKey() == null || entry.getValue() == null) {
          if (nullHandling == NullHandling.CheckAndFail)
            throw new IllegalArgumentException("Key or value may not be null");
          continue;
        }
        store.put(entry.getKey(), entry.getValue());
      }
    }
  }