java 中 HashMap 與HashTable之間的區別
阿新 • • 發佈:2018-12-23
今天訪問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。
原文: