Hashmap es una implementación liviana de hashtable (implementación no segura de thebra).
Hashmap permite que NULL como clave o valor de una entrada, mientras que Hashtable no.
Hashmap elimina el método de hashtable contiene y lo cambia a ContinsValue y contiene Key. Porque el método Contiene es fácil de causar malentendidos.
Hashtable hereda de la clase de diccionario, y hashmap es una implementación de la interfaz de mapas introducida por Java 1.2.
La mayor diferencia es que el método hashtable es sincronizado, mientras que HashMap no lo es.
Los algoritmos hash/rehash utilizados por Hashtable y HashMap son más o menos los mismos, por lo que no habrá una gran diferencia en el rendimiento.