Warum wird 31 als Multiplikator in Javas hashCode()-Methode für Strings verwendet?
Die Java-Dokumentation spezifiziert die Berechnung eines String-Objekts Hash-Code wie folgt:
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
wobei s[i] das i-te Zeichen der Zeichenfolge ist, n ist die Länge der Zeichenfolge und ^ steht für Potenzierung. Diese Formel beinhaltet einen festen Multiplikator von 31.
Begründung für die Verwendung von 31 als Multiplikator
Laut Joshua Blochs angesehenem Werk „Effective Java“ ist die Wahl von 31 da der Multiplikator auf mehreren beruht Faktoren:
Das obige ist der detaillierte Inhalt vonWarum verwendet Javas „hashCode()' für Strings 31 als Multiplikator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!