Wie funktioniert HashSet1.retainAll(HashSet2);
hinter den Kulissen?Wie funktioniert HashSet1.retainAll (HashSet2); Hinter den Kulissen arbeiten?
Ich füge Objekte mit identischen Parametern zu zwei verschiedenen HashSet
, aber wenn ich das oben genannte verwende, scheint ich nicht das richtige Ergebnis zu erhalten. Es erkennt nicht, dass es tatsächlich dieselben Parameter im Objekt sind.
Ist diese Methode oben die tatsächliche Adresse meiner Objekte in der Menge zu vergleichen?
Wenn ja, wie kann ich stattdessen Parameter der Objekte vergleichen?
Vielleicht überschreiben gleich?
Sie müssen die Methoden 'hashCode' und' equals' überschreiben. – marstran
Danke @marstran, hat super funktioniert. –
Übrigens müssen Sie auch den Vertrag der beiden Methoden erfüllen, damit es wie erwartet funktioniert. Wenn zwei Objekte gleich sind, müssen sie auch den gleichen Hash-Code haben. Wenn jedoch zwei Objekte den gleichen Hash-Code haben, sind sie möglicherweise nicht gleich (aufgrund von Hash-Kollisionen). – marstran