Lookup the description of Hashtable and HashMap in the
API documentation.
The main difference is that Hashtable is synchronized and HashMap is not. Because of that, HashMap might be slightly faster, because it doesn't have the overhead of synchronization.
Hashtable is an old class from before the time of
Java 1.2. In Java 1.2, a new collections API was added. See:
The Collections Framework, especially the Design FAQ might be interesting if you want to know why it was designed as it is.