Mi sono informata un pò meglio.
La miglior tecnica per implementare un bitSet sarebbe appunto usare una maschera di bit.
Ma è quello che non vuole perchè vuole vedere quanto siamo bravi a implementare un'array di booleani e gestire la memoria.
Ovvero: se inserisco 1000000000 di elementi in un'array di booleani nel modo più classico possibile ad un certo punto ci sarà eccezione dello heap, perchè troppo pieno.
Il trucco stà nel riuscire a inserire questi elementi in un'array di booleani senza lanciare eccezione.