Originally posted by Tanzeem Akhtar: Hi, well i am unable to understand that why it is mandatory to have same hash-code, if two objects are same?
Thanks in advance.
Short answer... It mandatory because that is the contract.
Longer answer... The way the hash set and map works is to only check for equality in the bucket that it is hashed to. Hashing has an order of one because it doesn't compare with all the objects in the collection, just with the ones in the bucket, which should be near zero items.
This means if two objects are hashing to different buckets, they won't even get compared -- it is assumed to be not equal.