Well, sometimes you can avoid it, and sometimes you can't. What if the key is a
String? How many different possible Strings are there that might go into a Map? Hint: it's a really, really big number. The hashCode() must be an int however. How many different possible ints are there? Hint: Integer.MAX_VALUE is a big number, but much much smaller than the previous big number. Therefore, out of all possible Strings, some Strings must have the same hashCode() - no matter
how you choose to calculate hashCode(). This leads to the possibility of hash collisions.