Redesign:

The hashtable bucket array is used as a bit array of length 32. Given a
key value K, and an internal bucket array size of N

Let
I = K%N
J = (K-I)/N

there is a value stored in the hashtable for key K if bit (1<<J) of 
internal bucket array of I is set.
1. implemented toString.
2. no-throw for invalid key on containsKey or get