Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : HashMap - auf speziellen "Index" zugreifen.. ?



maceop
26-02-2003, 19:54
hallo,
also ich hab eine Frage zu HashMap.
Sagen wir meine HashMap sieht so aus :

1 - Start
2 - Rechts
3 - Links
4 - Ende

Wobei diese wie folgt getputtet wurden :



HashMap my_table = new HashMap();
my_table.put("1","Start");
my_table.put("2,","Rechts");
my_table.put("3","Links");
my_table.put("4","Ende");
...


Durch einen Zufallsgenerator wird nun z.B. eine Zahl zwischen 1 und 4 generiert , also z.B. 3. Wie kann ich jetzt nur anhand der Kenntnis das ich auf das dritte Paar zugreifen möchte, herausfinden wie der schlüssel und zugehörige Wert zu Paar 3 sind.

Hoffe ihr versteht was ich meine, nachher soll da also stehen das z.B. der String 'in' == "3" ist und der String val == Links ist. Das Programm weiss zu Anfang nicht über die genaue Struktur der HashMap, d.h. obige Werte werden durch Benutzereingabe in die HashMap hinzugefügt.

gibt es keine Methode ala "my_table.getValueAt(3)" .... ?

mfg
maceop

krabat
27-02-2003, 01:12
es gibt eine Methode keySet(), mit der bekommst du ein Set ueber
die Schluessel in der Hashmap und kannst ueber dies durch einen Iterator oder
ueber ein Object-Array darauf zugreifen. Die Reihenfolge im Array ist dann aber wahrscheinlich "willkuerlich".


HashMap hm = new HashMap();
hm.put("1", "eins");
hm.put("2", "zwei");
hm.put("3", "drei");
hm.put("4", "vier");

Set set = hm.keySet();

Object[] setarray = set.toArray();
String s = (String)setarray[meinezufallsint];
String s2 = (String)hm.get(s);

maceop
28-02-2003, 13:38
danke, klappt !

mfg
maceop