MultiMap

Status
Nicht offen für weitere Antworten.

MultiMap

Neues Mitglied
Hallo ihr lieben,
habe eine Frage zur MultiMap, ich würde gerne eine HashMap in einer HashMap speichern und zwar stelle ich mir das so vor:
{key1= {key1_1= value, key1_2 = value}, key2 = {key2_1 = value, ...}}
z.B:

HashMap<String, HashMap<String, String>> outerMap = new HashMap <String, HashMap<String, String>>();
HashMap<String, String> innerMap = new HashMap<String, String>();
innerMap.put("Tim", 1);
innerMap.put("Anna", 2);
outerMap.put("CONN1", innerMap);

// so geht es nicht
//innerMap.clear();
//innerMap.remove("categories");
//innerMap.remove("descriptions");
innerMap.put("Klaus", 1);
innerMap.put("Anna", 2);
outerMap.put("CONN2", innerMap);

System.out.println("Map"+outerMap);

ich hätte gerne als Ausgabe: {CONN1 = {Tim = 1, Anna = 2}, CONN2 ={Klaus = 1, Anna=2}}
und nicht das was ich bekomme=
{CONN2={Klaus=1, Tim=1, Anna=2}, CONN1={Klaus=1, Tim=1, Anna=2}}
wie kann ich die innerMap nach jedem neuen Key löschen? wenn ich innerMap.clear() mache dann ist immer die letzte innerMap nur gespeichert=
{CONN2={Klaus=1, Anna=2}, CONN1={Klaus=1, Anna=2}}
Weiss jemand einen Rat? Ich möchte eigentlich schon gerne eine multiMap verwenden... selbst wenn ich eine Liste verwenden würde habe ich das Problem...
Ist es denn überhaupt möglich??
Würde mich über eine Antwort freuen!
MultiMap
 

0x7F800000

Top Contributor
wie kann ich die innerMap nach jedem neuen Key löschen?
Wieso willst du die denn löschen? Dein Problem ist doch grade das, dass es gelöscht und überschrieben wird?! Für jeden neuen eintrag in der outerMap musst du... naja... eben einen neuen Eintrag erzeugen, statt den alten zu überschreiben und mehrmals einzufügen. Bei jeder Neuen innerMap musst du eben mit new eine neue HashMap<String,String konstruieren, befüllen, und in die outerMap putten.
 

MultiMap

Neues Mitglied
super daran habe ich noch gar nicht gedacht, danke :) ich probier das mal
also jedesmal eine neue innerMap erzeugen...
 
Status
Nicht offen für weitere Antworten.

Oben