question: @ Override public int hashCode ( ) { long value = 17 ; value += 37 * value + Double . doubleToLongBits ( Math . abs ( x ) ) ; value += 37 * value + Double . doubleToLongBits ( Math . abs ( y ) ) ; return ( int ) ( value ^ ( value > > > 32 ) ) ; }
target:  Calcualates hashcode based on stored coordinates. Since we want +0.0 and -0.0 to be treated the same, we ignore the sign of the coordinates.