Sobes.tech
Senior

Is the implementation of a hashCode method that always returns one correct?

sobes.tech AI

Answer from AI

Implementing the hashCode() method to always return the same value (for example, 1) is technically correct but extremely inefficient.

Why?

  • The hashCode() contract requires that equal objects have the same hash code, but it does not require different objects to have unique hash codes.
  • If all objects return the same hash code, hash tables (such as HashMap, HashSet) degrade to linear search, significantly reducing performance.

Thus, such an implementation violates the purpose of hash codes — to distribute objects evenly across buckets for quick access.

Example of a poor implementation:

@Override
public int hashCode() {
    return 1; // always the same hash
}

It is recommended to implement hashCode() considering the object's significant fields to ensure good distribution of values.