HashMap is a newer class, part of the Collections framework. I would prefer it in almost all cases. Hashtable is "synchronized" but not in a way that makes me warm and fuzzy in complex multithreaded apps. I'd be more inclined to synchronize access to a private HashMap on my own or use the Collections class to generate a synchronized HashMap.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi