GeeCON Prague 2014*
The moose likes Java in General and the fly likes Hash Code Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Java in General
Bookmark "Hash Code" Watch "Hash Code" New topic
Author

Hash Code

Tanzeem Akhtar
Greenhorn

Joined: Sep 11, 2007
Posts: 9

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.


Tanzy..
http://techythought.wordpress.com/
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18875
    
  40

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.

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
 
Don't get me started about those stupid light bulbs.
 
subject: Hash Code