Klassen HashMap Zwei Objekte, gleicher Key

Basti4231

Bekanntes Mitglied
Hey Leute,

habe eine HashMap, bei der ich als Key einen String habe. Ich füge dort Objekte hinzu und es kann möglich sein, dass es mehrere Objekte mit gleichem Key gibt.

Die HashMap realisiert nämlich eine Liste von Spielkarten und der Name kann ja öfter vorkommen (mehrere gleiche Karten enthalten).

Wie schaffe ich es, dass das Objekt an der Stelle Key nicht ersetzt wird, wenn ich z.B. 2 mal den gleichen Key habe. Als Key verwende ich den Namen der Karte... (ist ja einzigartig)
Es ist mir erst zu spät aufgefallen, als ich mein Programm auf die HashMap umgestellt habe (von ArrayList vorher), dass die gleichen Keys die Objekte dahinter ersetzen.

Gruß Basti
 
Merci dir, habe auch jetzt an diese Lösung gedacht.
Was ich mich frage ist, wenn jetzt mein Key auf 2 values in der List verweist, welches von den Objekten gibt er mir zrück, den letzten Fund?
 
Nein, er gibt dir erstmal die gesamte Liste:

Code:
List<Value> v = map.get("Key");

Welchen Eintrag du dir jetzt aus dieser Liste rausholst, das musst du selbst wissen. Das liegt außerhalb der Verantwortung der Map.

Genauso musst du beim ersten Vorkommen des Keys erstmal die Liste initialisieren. Im Prinzip geht das Einfügen so:

Java:
// insert key-value pair
if(!map.contains(key)){
    map.put(key, new ArrayList<Value>());
}
List<Value> values = map.get(key);
values.add(value); // zB hinten dran hängen
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben