No simulado tem a seguinte questão q tbm n concordo com a reposta
class SortOf{
String name;
int bal;
String code;
short rate;
public int hashCode(){
return code.length() * bal
}
public boolean equals(Object o){
//insert code here
}
}
which of the following will fulfill the equals() and hashCode() contracts for this class? (choose all that apply).
A - return (( SortOf)o).bal == this.bal
B - return (( SortOf)o).code.length() = this.code.length()
C - return (( SortOf)o).code.length() * (( SortOf)o).bal == this.code.length() * this.bal;
D - return (( SortOf)o).code.length() * (( SortOf)o).bal * (( SortOf)o).rate == this.code.length() * this.bal * this.rate;
RESPOSTA: C e D.
mas p mim aresposta é só a C pq se colocar pos seguintes valores quebro o contrato de equals e hashCode, onde se equals == true hashCode tem o mesmo valor.
code.length() bal rate equals hashCode
3 * 3 * 2 = 18 9
2 * 3 * 3 = 18 6
Alguém ai ver outra coisa q n tou conseguindo enxergar, p dar a resposta do simulado ?

Não será que foi avaliado pela mesma coisa ? Se vc sabe quando se aplica e sabe quando não se aplica, então vc sabe o que é… 8)