The hashCode method defined by class Object does return DISTINCT integers for distinct objects.
If you don't override it you don't satisfy the hashCode contract (because different objects can be equal, and in this case their hashCode() methods should return the same value), and you are not able to locate an object in the hashtable, unless you maintain a reference to the original object.
[ September 26, 2008: Message edited by: M. Piva ]