Entra

View Full Version : nome dinamico per oggetti Hashmap(JAVA)


prazision
29-11-2004, 21:08
Io ho un oggetto
HashMap oggetto1 = new HashMap();

tale oggetto viene cosi 'riempito'

HashMap oggetto2 = new HashMap();
oggetto1.put("1",oggetto2);
HashMap oggetto3 = new HashMap();
oggetto1.put("2",oggetto3);
HashMap oggetto4 = new HashMap();
oggetto1.put("3",oggetto4);
ecc.

Ecco siccome non so quante saranno le HashMap( e quindi le chiavi) da inserire nell'oggetto1 come posso crearle dinamicamente dando loro un nome dinamico??

qcosa del tipo(so che non funziona ma faccio un esempio):
for (i =1;i<variabile;i++)
{
HashMap (oggetto+i) = new HashMap();
}

dove (oggetto+i) mi crea dinamicamente il nome della variabile(in javascript mi sembra che sia eval la funzione adatta)

Si puo' fare qcosa di simile in java???
O altrimenti come potrei ovviare???
grazie

kingv
30-11-2004, 07:01
il nome e' solo un riferimento per accedere all'istanza dell'oggetto ma non e' necessario:



HashMap contenitore = new HashMap();

for (i =1;i<variabile;i++)
{
HashMap temp = new HashMap();
temp.put(ecc., ecc.);

contenitore.put(new Integer(i), temp);

}

prazision
30-11-2004, 08:32
ok ho risolto, appena ho tempo spiego come.
grazie

prazision
30-11-2004, 22:11
mi sa che spiego tutto tra qualche giorno, sono troppo incasinato
cmq grazie a tutti

prazision
02-12-2004, 10:26
ho risolto cosi

private static HashMap labels = new HashMap();

public static void setLabel()
{
.....
while(....)
{

String id=metodoQualunque("id");
HashMap label = new HashMap();
while(....)
{
....
label.put(..,..);//mi costruisco la mia nuova hashmap
}
labels.put(id , label);//aggiungo un valore alla prima hashmap
}


}

public static String getLabel(String a, String b)
{
HashMap hm = (HashMap)labels.get(a);
String valore = (String)hm.get(b);
return valore;
}