Ich habe ein unveränderliches Objekt, zum Beispiel einen Knoten im kartesischen Raum. Die Klasse ist unveränderlich, also cache ich die hashCode
für sehr schnelles Hashing.
Da hashCode
eindeutig ist und von allen Feldern der Klasse abhängig ist und die Klasse Immutable ist, wäre es richtig, nur Node
equality basierend auf hashCode
zu überprüfen?
Dies gibt alle Komponententests, die ich über die Eigenschaften von equals()
und hashCode()
geschrieben habe, und ihre Interaktion, aber vielleicht fehlt mir etwas?
Hinweis: Objects.hashCode()
und Objects.equal()
sind Guava-Klassen, die für die jeweiligen Methoden hilfreich sind.
Nein, aber ..
Ich denke, du könntest den Hashcode überprüfen, um zu sehen, ob Objekte nicht gleich sind und dort etwas Leistung erzielen:
%Vor%Natürlich verbessert dies nur die Performance, falls die meisten Ihrer Vergleiche falsch ausfallen. Im Falle gleicher Objekte führt dies zu einer Leistungseinbuße. In Ihrem Beispiel (Vergleich von nur drei Werten) würde ich dies nicht empfehlen.
Tags und Links java immutability guava equals hashcode