getY()とgetX()の2つのメソッドを持つクラスがあります(これは一種のマップです)。
YとXの定義域は[-1000.0、+ 1000.0]であり、それらは2倍です。
hashCode()メソッドを作成しました。
@Override
public int hashCode()
{
int hash=(int) (getX()/EPSILON);
hash+= (int) ( (1000.0/EPSILON)*getY() );
return hash;
}
ここで、EPSILONは許容される最大エラーです。
ただし、問題は、値が高すぎるため、X=1000.0およびY=1000.0の場合にオーバーフローが発生することです。オーバーフローを処理し、すべての場合に2つの異なるオブジェクトに対して2つのハッシュコードを返すことができるhashCode()メソッドを作成するにはどうすればよいですか?