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.