protected int index()

in core/src/main/java/gnu/trove/TObjectHash.java [191:216]


  protected int index(T obj) {
    Object[] set = _set;
    if (set == EMPTY_OBJECT_ARRAY) return -1;
    int length = set.length;
    int hash = _hashingStrategy.computeHashCode(obj) & 0x7fffffff;
    int index = hash % length;
    Object cur = set[index];

    if (cur != null
        && (cur == REMOVED || !_hashingStrategy.equals((T)cur, obj))) {
      // see Knuth, p. 529
      int probe = 1 + hash % (length - 2);

      do {
        index -= probe;
        if (index < 0) {
          index += length;
        }
        cur = set[index];
      }
      while (cur != null
             && (cur == REMOVED || !_hashingStrategy.equals((T)cur, obj)));
    }

    return cur == null ? -1 : index;
  }