Hallo,
ich habe eine HashMap wo eine Klasse als Schlüssel und ein Integer als Wert hergenommen wird, hier genannt map.
Die Schlüsselklasse enthält zwei IntegerInstanzvariablen die x und y Wert eines Koordinatensystems repräsentieren.
Wenn ich nun zwei Schlüsselwertepaare in meine HashMap eintrage.
Sagen wir Klasse a mit x = 1 und y = 2 und
Klasse b mit x = 2 und y = 3.
Die Klasse stellt nun eine Methode bereit mit der ich x und y verändern kann.
Vereinfacht erhöht sie hier x und y jeweils um 1 und nene siee inkrement.
Wenn ich jetzt mit mit map.containsKey(a.inkrement()) abfrage gibt er mit false zurück.
Meines Wissen frägt die Methode containsKey doch die Gleichheit des Schlüsselpaares bei Klassen mit equals ab.
ich habe in meiner Klasse equals überschrieben das es x und y vergleicht.
auch hashCode habe ich überschrieben und das inkrementierte a hat den selben hashCode wie das ursprüngliche a.
Wieso liefert mir containsKey dann false zurück?
Ich hoffe jemand hat eine Lösung für mein Problem. Danke im Voraus.
ich habe eine HashMap wo eine Klasse als Schlüssel und ein Integer als Wert hergenommen wird, hier genannt map.
Die Schlüsselklasse enthält zwei IntegerInstanzvariablen die x und y Wert eines Koordinatensystems repräsentieren.
Wenn ich nun zwei Schlüsselwertepaare in meine HashMap eintrage.
Sagen wir Klasse a mit x = 1 und y = 2 und
Klasse b mit x = 2 und y = 3.
Die Klasse stellt nun eine Methode bereit mit der ich x und y verändern kann.
Vereinfacht erhöht sie hier x und y jeweils um 1 und nene siee inkrement.
Wenn ich jetzt mit mit map.containsKey(a.inkrement()) abfrage gibt er mit false zurück.
Meines Wissen frägt die Methode containsKey doch die Gleichheit des Schlüsselpaares bei Klassen mit equals ab.
ich habe in meiner Klasse equals überschrieben das es x und y vergleicht.
auch hashCode habe ich überschrieben und das inkrementierte a hat den selben hashCode wie das ursprüngliche a.
Wieso liefert mir containsKey dann false zurück?
Ich hoffe jemand hat eine Lösung für mein Problem. Danke im Voraus.