两者都使用key-value访问数据。Hashtable是JAVA中一个原始的collection类;而HashMap是新的Collections Framework的一部分,在Java 1.2中被加入。两者关键的不同点是,对Hashtable的访问同时会与表进行同步,而对HashMap的访问(默认)不会。另外一个不同之处是,HashMap中的iterator是fail-safe的,而Hashtable的enumerator则不是。
第三个不同之处,HashMap允许它里面有null值,而Hashtable不允许。如果我们要写新的代码,最好使用HashMap。