1. 程式人生 > >java 中 HashMap 與HashTable之間的區別

java 中 HashMap 與HashTable之間的區別

今天訪問java 併發程式設計網,看到一個翻譯徵集令,併發程式設計網的作者從stackoverflow 網站上選取了一些經典問答,遂決定翻譯幾篇

翻譯系列文章:

3.在java中如何建立一個記憶體洩露

譯文:

問題:   java 中HashMap 與HashTable之間的區別?

                  非執行緒安全應用中哪個更有效率?

回答:    java 中 HashMap 與HashTable 有很多區別

          1. HashTable 是執行緒同步的,HashMap不是。所以這使得HashMap在非執行緒安全應用中效能更好,因為非執行緒同步的物件通常效能比執行緒同步物件要好

          2. HashTable的鍵和值不允許為空,HashMap允許一個空鍵和任何數量的空值

          3. HashMap有一個子類LinkedHashMap ,所以一旦你想要預測迭代順序(預設是元素插入順序),對於LinkedHashMap形式的hashmap你可以很容易的實現交換,

              但是如果使用hashTable,這將會不太容易。


    因此,如果不需要執行緒同步,我推薦你使用HashMap,如果需要執行緒同步,你可以查閱下ConCurrentHashMap。

原文: