HashMap和Hashtable的區別

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);
相關文章
相關標籤/搜索