Was ist die bevorzugte Methode zum Implementieren von hashCode ()?

Manchmal muss ich die hashCode () -Methode eines Obj implementieren, indem ich die hashCodes seiner verschiedenen Instanzmitglieder kombiniere. Wenn das kombinatorische Objekt beispielsweise die Elemente a, b und c enthält, wird es von ppl häufig als @ implementier


int hashCode(){
   return 31 * 31 * a.hashCode() + 31 * b.hashCode() + c.hashCode();
}

Woher kommt diese magische Nummer 31? Ist es die Länge von 4 Bytes oder nur eine Primzahl?

Gibt es eine andere bevorzugte / Standardmethode zum Implementieren von hashCode ()?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage