HashTable是一個過期的集合類,在java4中唄重寫了,實現了Map接口,因此也成了集合的一部分 HashTable和HashMap的主要區別是線程安全和性,同步,以及速度 1.HashMap能夠接受爲null的鍵值(key)和值(value),而Hashtable則不行 2.HashMap是非synchronized,而Hashtable是synchronized,這意味着Hashtable是線程安全的,多個線程能夠共享一個Hashtable Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的擴展性更好。 3.因爲Hashtable是線程安全的也是synchronized,因此在單線程環境下它比HashMap要慢。 4.HashMap不能保證隨着時間的推移Map中的元素次序是不變的。 注意: 1. sychronized意味着在一次僅有一個線程可以更改Hashtable。就是說任何線程要更新Hashtable時要首先得到同步鎖, 其它線程要等到同步鎖被釋放以後才能再次得到同步鎖更新Hashtable。 2. HashMap能夠經過下面的語句進行同步: Map m = Collections.synchronizeMap(hashMap);