la regola sulle collection: se vuoi confrontare due oggetti devi implementare equals e hashcode ed implementarli in modo che tornino uguali epr tipo uguale.
Le chiavi di Map non sono escluse da questa regola, quindi puoi usare qualsiasi cosa a patto che tu abbia implementato equals e hashcode.

In realtà non puoi usare tipi primivi con Map, in quanto questo ha bisogno di una chiave di tipo Object.
Ti viene in aiuto in wrapping automatico che prende il tuo intero(ad esempio), lo trasforma in Integer (e ha una versione di equals e hashcode) e infine lo usa come chiave.

Una buona lettura del capitolo sulle Collection male non ti fa