Wie soll ich in hashCode () lange auf int abbilden?

Ich habe eine Reihe von Objekten mit einemlong -Feld, dessen Wert ein bestimmtes Objekt in meinem gesamten System eindeutig identifiziert, ähnlich wie eine GUID. Ich habe @ überschriebObject.equals(), um diese ID zum Vergleich zu verwenden, da ich möchte, dass sie mit Kopien des Objekts funktioniert. Jetzt möchte ich @ überschreibObject.hashCode() auch, was im Grunde bedeutet, Mapping mylong für manchenint Rückgabewert

Wenn ich den Zweck von @ verstanden hahashCode Richtig, es wird hauptsächlich in Hash-Tabellen verwendet, daher wäre eine gleichmäßige Verteilung wünschenswert. Das würde bedeuten, einfach @ zurückzugebid % 2^32 würde genügen. Ist das alles, oder sollte ich etwas anderes beachten?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage