我在java中实现了一个类来模拟有理数,它有两个整数来模拟分子和分母。我需要重写 Object 的 hashcode 方法,所以相同的数字具有相同的哈希码。
我已经像这样定义了我的 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)是否应该返回相同的哈希码?