# Suche sowas wie Map nur für mehrere Werte



## d00d (1. Sep 2008)

mahlzeit,

ich lese aus einem knotenbaum einen wert aus und hab eine tabellenstruktur in der in jeder zeile ein dokumenttyp steht. jeder wert im knotenbaum darf z. B. 4 verschiedene dokumenttypen zugeordnet bekommen. ich such nun soetwas wie MAP wo ich den knotenpunktwert als string mit den erlaubten dokumenttypnamen zuordnen kann um zu überprüfen, ob die zugeordneten dokumenttypen die tatsächlich in meiner tabelle stehen auch die sind, die zugeordnet sein dürfen. 

bei map kann man soweit ich das gesehen hab einen schlüssel (hier der knoteneintrag) nur einen einzigen wert zuordnen, ich bräucht das ganze aber für mehrere werte (zwischen 1-5). 

MfG


----------



## SlaterB (1. Sep 2008)

ein einziger zuzuordnender Wert kann doch auch eine Liste, ein Array oder sonst ein beliebiges Objekt mit Millionen von Infos sein..


----------



## Manuela (1. Sep 2008)

Hallo hast du schon einmal was von Hashtables gehört ??

du kannst dir z.B. Hashtable<Number,Hashtable<String,String>> machen, dann kannst du 
dir alles was du willst einladen.

Gruß Manuela


----------



## maki (1. Sep 2008)

Manuela,

eine Hastable ist eine Map


----------



## Manuela (1. Sep 2008)

maki hat gesagt.:
			
		

> Manuela,
> 
> eine Hastable ist eine Map



ich weis, aber ich wollte Ihm nur zeigen was man damit anstellen kann.
 :lol:


----------



## maki (1. Sep 2008)

Dann aber bitte keine Hashtable sondern eine moderne Version, wie zB. HashMap


----------



## xysawq (1. Sep 2008)

Huiii... das habe ich doch gestern erst gemacht:


```
Map<String, Object> map1 = new HashMap<String,Object>();
Map<String, Object> map2 = new HashMap<String,Object>();
Map<String, Object> map3 = new HashMap<String,Object>();

map2.put("Map 3", map3);
map1.put("Map 2", map2);

Map<String, Object> map4 = (Map<String, Object>) map1.get("Map 2");
Map<String, Object> map5 = (Map<String, Object>) map4.get("Map 3");
```

Musst vielleicht schaun, wenn du das wieder aufbröselst wann Schluss ist, am besten mit ner ClassCastException oder so.


----------



## Marco13 (1. Sep 2008)

Exceptions für den Kontrollfluss einsetzen  ???:L  :noe:  :autsch:


----------



## Guest (1. Sep 2008)

xysawq hat gesagt.:
			
		

> Huiii... das habe ich doch gestern erst gemacht:
> 
> 
> ```
> ...





```
Map<String,Object> map1 = new HashMap<String,Object>();
Map<String,Object> map2 = new HashMap<String,Object>();
Map<String,Object> map3 = new HashMap<String,Object>();

Map<Number,Map<String,Object>> haupt = new HashMap<Number,Map<String,Object>>();

haupt.put(0,map1);
haupt.put(1,map2);
haupt.put(2,map3);

das aufbröseln müßte eigendlich so gehen wie bei einer Hashtable
for(Object element : haupt.keySet()){
 System.out.println("wert ="+haupt.get(Interger.parseInt(element.toString).get("deinNamewasDuVergebenHast"));
    
}
```


----------



## Beni (1. Sep 2008)

xysawq hat gesagt.:
			
		

> Huiii... das habe ich doch gestern erst gemacht:



Oder auch: 

```
Map<String, Map<String, Object>> map1 = new HashMap<String,Map<String,Object>>();
Map<String, Object> map2 = new HashMap<String,Object>();
Map<String, Object> map3 = new HashMap<String,Object>();

map2.put("Map 3", map3);
map1.put("Map 2", map2);

Map<String, Object> map4 = map1.get("Map 2");
Map<String, Object> map5 = map4.get("Map 3");
```
 :bae:


----------



## SlaterB (1. Sep 2008)

dann kannst du ja gar nicht map1 in map2 einfügen


----------



## Beni (1. Sep 2008)

Hm, es ist nicht so als hätte ich den ganzen Thread gelesen. Habe einfach ein bisschen Code gesehen und wollte meinen Senf dazu geben :wink: Und in dem Code wird ja auch nie map1 in map2 eingefügt.


----------



## SlaterB (1. Sep 2008)

was ja auch gut ist, die Maps sollten sich nicht gegenseitig enthalten,
durch deine strenge Typisierung wird dies gekonnt verhindert, vorher stand diesem Fehler Tür und Tor offen

darauf wollte ich in gewohnt lustiger Art hinweisen


----------



## xysawq (2. Sep 2008)

Na zum Glück verwende ich das auch nur, um in meinem RTP-Programm was auszusortieren (bitte fragt nicht was, es war schon kompliziert genug sich das auszudenken, aber erklären... nä... wo ist mein Kaffee?)


----------

