Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java
Expertise: Advanced
Mar 27, 2001

Object.hashCode() and Object.equals()


The Object.hashCode() method returns a number that is effectively random. This number is also implementation- and instance-dependent. This has a couple consequences:

1 - The order of iteration for elements in a Hashtable will be unpredictable, and will generally differ from one program invocation to the next.

2 - A class that overrides Object.equals() must also override Object.hashCode(). It is safe, if inefficient, if the hashCode() method returns the same value for unequal objects. It is unsafe if the hashCode() method returns different values for two objects that are, in fact, equal.

Solution: If a repeatable order of enumeration over the elements in a Hashtable is important to your program, then any object used as a key in the Hashtable should have a class-specific hashCode method. This hashCode method should return a value computed from data fields of the object. If any of your classes define an equals method, they must also define a hashCode method. This means that for any two objects a,b of that class, a.equals(b) implies that a.hashCode() == b.hashCode(). Note that hashCode should not depend on any mutable property. If an object
Chakravarthy Inampudi
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date