Hashtable是同步的,而HashMap则不是。我只看到这么点。至于用法可以看看java doc。

解决方案 »

  1.   

    两者都使用key-value访问数据。Hashtable是JAVA中一个原始的collection类;而HashMap是新的Collections Framework的一部分,在Java 1.2中被加入。
    两者关键的不同点是,对Hashtable的访问同时会与表进行同步,而对HashMap的访问(默认)不会。
    HashMap中的iterator是fail-safe的,而Hashtable的enumerator则不是。HashMap允许它里面有null值,而Hashtable不允许。HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key。
    如果我们要写新的代码,最好使用HashMap。Hashtable 和 Vector 由于效率问题,已经逐渐被 HashMap 和 ArrayList 取代了。hashtable差不多就是线程安全的hashmap,Vector也是线程安全的ArrayList。