Javaで有理数をモデル化するクラスを実装しました。これには、分子と分母をモデル化する2つの整数があります。Objectのハッシュコードメソッドをオーバーライドする必要があるため、同じ番号が同じハッシュコードを持ちます。
私はequals()メソッドを次のように定義しました:
public boolean equals(Object obj) {
Racional r = null;
if (obj instanceof Racional) {
r = (Racional) obj;
} else {
return false;
}
return r.getDenominador() * this.numerador == r.getNumerador() * this.denominador;
}
これに関して:
分子*分母を返すことは良いアプローチでしょうか?
同等の有理数(1/4や2/8など)は同じハッシュコードを返す必要がありますか?