ma, in termini di efficienza, un'HashMap di HashMap ha senso?
Io penso di si. Poichè se utilizzi un'altra struttura dati(ad esempio un Vector di Vector), sarai costretto a fare due ricerche, siano esse lineari o binarie (in quest'ultimo caso guadagni da una parte, però perdi da un altra, poichè per fare una ricerca binaria dovrai ordinare le tue strutture dati). L'HashMap, per quel che ne so ha una complessità temporale (per quanto riguarda la ricerca) pressocchè costante, per questo penso che in termini di efficienza sia la più idonea.