jchimene wrote:
> On Mar 31, 9:36 am, Luis Fernando Planella Gonzalez
> <[email protected]> wrote:
>   
>>> Anyone has a better idea?
>>>       
>> public boolean equals(Object obj) {
>>     if (!(obj instanceof Point)) {
>>         return false;
>>     }
>>     Point p = (Point) obj;
>>     return fX == p.fY && fY == p.fY;
>>
>> }
>>
>> public int hashCode() {
>>     return (int) (pX + pY);
>>     
>
> Does this say that Point(2.0,0.0) and Point(0.0,2.0) have the same
> hashCode()?
>
>   
Yes, but this sort of thing is inevitable. You can't map two doubles
onto one integer without some duplication.

But that doesn't matter. Consider this hashCode() implementation:

public int hashCode() { return 0; }

This will work in all circumstances. It fulfills the hashCode contract,
it just doesn't make a HashMap with Point keys perform very well. Even
then, if you only have very small maps, this won't matter. My point is
that you shouldn't get too hung up on how this is implemented - just use
something fast and simple.

Paul

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to