I've read all the posts in the topic and I still have confusion on the following: when overriden and collision can happen? From what I'v read I see:
- Whenever two objects are the same in terms of equals()method, their hash code must be the same
- Whenever two objects are not the same in terms of equals()method, we have no guarantee for theidhashcode(), i.e. it might be the same, it might be different
- when we use HashMap.put(key, value)HashMap compares objects by theirequal()method. If the two keys areequal()then the newvalueis overriden
- If two kays have the same hashcodethen collision occurs and Java deals with it
- However if two keys are equal then the new value is overriden, BUT it also implies that the hashCode()must be the same, so collision must happen, which is a contradiction with the previous?
Can someone please clarify these steps for me?
 
     
    