主要差異
HashMap和hashtable是Java中兩個關鍵的資料結構。它們在集合框架中,兩者之間幾乎沒有共同之處。雖然它們有這些相似之處,但它們之間也有一些不同之處。HashMap和hashtables都以鍵值對的形式儲存資料,slao都實現Map介面。為了儲存元素,HashMap和HashTable都使用雜湊技術。因為我們必須解決兩者之間的差異,所以最重要的區別是基於執行緒安全性。HashMap和HashTable的主要區別包括空鍵、迭代值、同步。表現和等級。HashTable是執行緒安全的,而HashMap則不是執行緒安全的。HashTable在內部同步,而HashMap在內部不同步,因此在多執行緒應用程式中使用HashMap是不安全的。HashMap的效能比HashTable好,因為HashTable是內部同步的。HashMap優於HashTable,因為HashTable是一個遺留類,被認為是由於折舊。HashMap比HashTable快。從jdk1.2引入HashMap開始,它就是Java集合框架的成員,但在jdk1.2雜湊表出現之前,jdk1.2已經使它實現了Map介面併成為集合框架的成員。
比較圖
hashmap的定義
HashMap是Java中集合框架中重要的資料結構。HashMap不是執行緒安全的,因此在多執行緒應用程式中使用HashMap是不安全的。但是對於多執行緒應用程式來說,它可以透過外部同步來保證安全集合.已同步()方法。它透過擴充套件AbstractMap類來實現Map介面。HashMap最多允許一個空鍵,並且允許任意數量的空值。HasMap返回的迭代器本質上是失敗的。HashMap的效能很好,因此與HashTable相比速度更快。
雜湊表的定義
HashTable是Java中集合框架中重要的資料結構。雜湊表是執行緒安全的,並且在內部同步。因此,它可以安全地用於多執行緒應用程式。它透過擴充套件Dictionary類來實現Map介面。它既不允許單個空鍵也不允許空值。HashTable是一個遺留類,被認為是由於折舊。雜湊表返回的列舉本質上是安全的。
一言以蔽之
- HashTable是執行緒安全的,而HashMap則不是執行緒安全的。
- 雜湊表在內部同步,而HashMap在內部不同步。
- HashMap和HashTable都實現了Map介面,但它們都擴充套件了不同的類。HashMap透過擴充套件AbstractMap類來實現Map介面,而HashTable則透過擴充套件Dictionary類來實現Map介面。
- HashMap允許最多一個空鍵,並且允許任意數量的空值,而HashTable既不允許單個空鍵也不允許空值。
- 對於遍歷元素,HashMap只返回迭代器,而HashTable返回的不僅是迭代器,還是列舉器。
- HasMap返回的迭代器本質上是快速失敗的,而雜湊表返回的列舉本質上是故障安全的。
- HashMap比HashTable快。
- HashTable比HashMap慢。
- HashMap的效能比HashTable好,因為HashTable是內部同步的。
- HashMap優先於HashTable,因為HashTable是一個遺留類,被認為應該折舊。
- 從jdk1.2引入HashMap開始,它就是Java集合框架的成員,但在jdk1.2雜湊表出現之前,jdk1.2已經使它實現了Map介面併成為集合框架的成員。
對比影片
結論
計算機體系結構是一個神祕的東西,對於一般使用者和沒有詳細知識的人。HashMap和HashTable這兩個術語是相似的,它們被認為是相同的,但在工作和功能上是不同的。因此,本文將對這兩種型別作一個正確的認識,以便人們有一個更清晰的認識。