Spiegazione breve:
Un array bidimensionale (di qualunque tipo) è una matrice che può essere rettangolare o non rettangolare (jagged) e in cui si può accedere agli elementi usando un indice zero-based per ognuna dimensione.
Una HashMap è una classe che fa parte del "Collections Framework" e implementa una collezione di Oggetti organizzati con una relazione del tipo: chiave (univoca) K --> valore V, in cui K e V possono essere oggetti di qualunque tipo.
Spiegazione lunga:
la trovi nei link indicati sopra.
Punto.