What distinguishes a proper ( versus an improper )
implementation of the hashCode() method?

What do I need to "watch out" for when 
implementing a hashCode() method?  Any 
"learned the hard way" lessons people have to
share on proper versus improper implementations of 
hashCode?  Anything unique when dealing with
Collection classes?



Here is text from java.lang.Object:

The general contract of hashCode is: 

Whenever it is invoked on the same object more than
once during an execution of a Java application, the
hashCode method must consistently return the same
integer, provided no information used in equals
comparisons on the object is modified. This integer
need not remain consistent from one execution of an
application to another execution of the same
application. 

If two objects are equal according to the
equals(Object) method, then calling the hashCode
method on each of the two objects must produce the
same integer result. 

It is not required that if two objects are unequal
according to the equals(java.lang.Object) method, then
calling the hashCode method on each of the two objects
must produce distinct integer results. However, the
programmer should be aware that producing distinct
integer results for unequal objects may improve the
performance of hashtables. 

As much as is reasonably practical, the hashCode
method defined by class Object does return distinct
integers for distinct objects. (This is typically
implemented by converting the internal address of the
object into an integer, but this implementation
technique is not required by the JavaTM programming
language.) 


__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com

To change your membership options, refer to:
http://www.sys-con.com/java/list.cfm

Reply via email to