🧠 What is the maximum number of hashCode()
values?
In Java, the return type of hashCode()
is an int
, so:
public int hashCode()
That means:
- It returns a 32-bit signed integer.
- The range of values is:
from -2,147,483,648 (Integer.MIN_VALUE)
to 2,147,483,647 (Integer.MAX_VALUE)
🎯 So the maximum number of distinct hashCode()
values is:
2^32 = 4,294,967,296 possible bit patterns
But since int
is signed, half are negative, so:
Maximum number of unique hashCode() values = 2^32 = 4,294,967,296
✅ Even though the range is signed, there are 4.2 billion unique hash codes possible.
⚠️ But here’s the catch:
Even if 4+ billion values are available, it doesn’t mean:
- Every object has a unique
hashCode()
- Collisions won’t happen
Since the number of possible objects in the world is vastly more than 2³², hash collisions are inevitable in some cases — that’s why equals()
is also required for correctness in hash-based structures like HashMap
.