Per esempio vorrei creare un dizionario così
Map <String, String> vocabolario = new HasMap<String, String>()
{"hello":"ciao", "boh","non so"}
senza dover creare prima il dizionario e poi popolarlo (la sintassi è presa
in prestito da Python)...
--
"Dariosky" <n...@mail.prot> ha scritto nel messaggio
news:434c1...@newsgate.x-privat.org...
> Rieccomi con un dubbio da poco,
> č possibile creare una Map(per esempio una HashMap) riempendola al momento
> della definizione?
>
> Per esempio vorrei creare un dizionario cosě
> Map <String, String> vocabolario = new HasMap<String, String>()
> {"hello":"ciao", "boh","non so"}
>
> senza dover creare prima il dizionario e poi popolarlo (la sintassi č
D> Rieccomi con un dubbio da poco, č possibile creare una Map(per
D> esempio una HashMap) riempendola al momento della definizione?
In pochi minuti ho esteso HashMap in modo che avesse un costruttore
che accetti un array bidimensionale di Object (java 1.4) e che quindi
permette cose del tipo:
PCUSHashMap fihm =
new PCUSHashMap(new Object[][]{{"aaa","Valore per aaa"},
{"bbb","Valore per bbb"},
{"ccc","Valore per ccc"},
{"ddd","Valore per ddd"}});
/*
* All'inizio avevo chiamato FIHashMap la classe, FI da Fast
* Inizialization, ma non so perché il nome non mi tornava... :) )
*/
Ci ho messo veramente poco a fare l'estensione, un Error per gestire le
situazioni in cui il parametro di ingresso non č un Object[n][2] ed un
programma per testare il tutto.
--
/\ ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
//--\ | | \| | Integralista GNUslamico
\/ e allevatore di bug da competizione
> In pochi minuti ho esteso HashMap in modo che avesse un costruttore
> che accetti un array bidimensionale di Object (java 1.4) e che quindi
Scusa, ma perché Object ? Lui vuole creare una tabella di hash con un
template (java 1.5) tipizzandolo come String. Se poi, vuoi continuare ad
utilizzare Object, mi chiedo a che cosa servono i template....
Ciao,
Maurizio.
in quel momento hai già creato la tua mappa, per riempirla non ti resta
altro che usare i metodi messi a disposizione dalla classe (un ciclo for per
riempirla non mi senbra una cosa così complicata da fare). Derivare da
HasMap solo per riempirla con dei valori di default predefiniti, secondo me,
non ha molto senso. Ovvero non ne vedo l'utilità, visto che quei valori,
vengono modificati da ogni riutilizzo della classe, e, in una eventuale
utilizzazione, avrei piacere di poterli modificare, magaari mettendoli
dentro un file di configurazione.
Ciao,
Maurizio.
Grazie!
Mi pare una buona idea utilizzare gli array visto che permettono
l'inizializzazione al volo (in alternativa si può fare con una stringa da
"parsare"). Mi metto subito a provarci.
PS. Non sapevo frequentassi anche questo gruppo, W il PlutoPD ;)