Olá! Gostaria de entender a montagem do método hashCode
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((nome == null) ? 0 : nome.hashCode());
result = prime * result + numeroMatricula;
return result;
}
Porquê ele usa esse 31 como número primo para montar o código de espalhamento? Li que é algo sobre ser um valor numérico que otimiza o espalhamento dos
buckets de Hash
. É isso, alguem saberia dizer mais especificamente esse funcionamento?Qual o resultado prático de realizar a multiplicação
prime * result
? (na primeira atribuição deresult
)nome.hashCode()
é a implementação da classeString
?