public void addByIndex(int index, int key, @NotNull T value) {
    if (key == 0) {
      specialZeroValue = value;
      hasZeroValue = true;
      return;
    }

    if (size >= (2 * values.length) / 3) {
      rehash();
      index = hashIndex(keys, key);
    }

    size++;
    values[index] = value;
    keys[index] = key;
  }
public void addByIndex(int index, int key, @NotNull T value)