散列表(hashmap)和雜湊表(hashtable)的區別

HashMap和hashtable是Java中兩個關鍵的資料結構。它們在集合框架中,兩者之間幾乎沒有共同之處。雖然它們有這些相似之處,但它們之間也有一些不同之處。HashMap和hashtables都以鍵值對的形式儲存資料,slao都實現Map介面。為了儲存元素,HashMap和HashTable都使用雜湊技術。因為我們必須解決兩者之間的差異,所以最重要的區別是基於執行緒安全性。HashMap和Ha...

主要差異

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只返回迭代器返回值不僅是迭代器,也是列舉器。
實施透過擴充套件AbstractMap類實現Map介面透過擴充套件Dictionary類實現對映介面。
同步內部不同步它是內部同步的

hashmap的定義

HashMap是Java中集合框架中重要的資料結構。HashMap不是執行緒安全的,因此在多執行緒應用程式中使用HashMap是不安全的。但是對於多執行緒應用程式來說,它可以透過外部同步來保證安全集合.已同步()方法。它透過擴充套件AbstractMap類來實現Map介面。HashMap最多允許一個空鍵,並且允許任意數量的空值。HasMap返回的迭代器本質上是失敗的。HashMap的效能很好,因此與HashTable相比速度更快。

雜湊表的定義

HashTable是Java中集合框架中重要的資料結構。雜湊表是執行緒安全的,並且在內部同步。因此,它可以安全地用於多執行緒應用程式。它透過擴充套件Dictionary類來實現Map介面。它既不允許單個空鍵也不允許空值。HashTable是一個遺留類,被認為是由於折舊。雜湊表返回的列舉本質上是安全的。

一言以蔽之

  1. HashTable是執行緒安全的,而HashMap則不是執行緒安全的。
  2. 雜湊表在內部同步,而HashMap在內部不同步。
  3. HashMap和HashTable都實現了Map介面,但它們都擴充套件了不同的類。HashMap透過擴充套件AbstractMap類來實現Map介面,而HashTable則透過擴充套件Dictionary類來實現Map介面。
  4. HashMap允許最多一個空鍵,並且允許任意數量的空值,而HashTable既不允許單個空鍵也不允許空值。
  5. 對於遍歷元素,HashMap只返回迭代器,而HashTable返回的不僅是迭代器,還是列舉器。
  6. HasMap返回的迭代器本質上是快速失敗的,而雜湊表返回的列舉本質上是故障安全的。
  7. HashMap比HashTable快。
  8. HashTable比HashMap慢。
  9. HashMap的效能比HashTable好,因為HashTable是內部同步的。
  10. HashMap優先於HashTable,因為HashTable是一個遺留類,被認為應該折舊。
  11. 從jdk1.2引入HashMap開始,它就是Java集合框架的成員,但在jdk1.2雜湊表出現之前,jdk1.2已經使它實現了Map介面併成為集合框架的成員。

對比影片

結論

計算機體系結構是一個神祕的東西,對於一般使用者和沒有詳細知識的人。HashMap和HashTable這兩個術語是相似的,它們被認為是相同的,但在工作和功能上是不同的。因此,本文將對這兩種型別作一個正確的認識,以便人們有一個更清晰的認識。

  • 發表於 2020-05-12 06:18
  • 閱讀 ( 20 )
  • 分類:科技

你可能感興趣的文章

散列表(hashmap)和樹狀圖(treemap)的區別

關鍵區別–hashmap與treemap 在程式設計中,有各種機制來收集資料。集合是儲存資料的一種方法。程式語言,如Java使用集合。它是一個包含類和介面的框架,用於儲存和操作一組資料元素。在普通陣列中,有固定數量的元素要...

  • 發佈於 2020-10-02 05:06
  • 閲讀 ( 40 )

等於(equals)和java中的hashcode(hashcode in java)的區別

...等。列印s1和s2的hashCode得到相同的值。hashCode方法可用於HashMap等集合。 等於(equals)和java中的hashcode(hashcode in java)的區別 等於Java中的hashCode equals是Java中的一個方法,它的作用類似於==運算子,後者用於測試物件標識而...

  • 發佈於 2020-10-19 00:40
  • 閲讀 ( 53 )

記憶體快取(memcached)和雷迪斯(redis)的區別

...等,它使用資料結構來儲存資料。主要資料結構有字串、列表、集合、排序集和雜湊、點陣圖等,Redis是用C語言編寫的,是一個開源的跨平臺系統。 圖01:Redis Redis的主要優點是它將資料儲存在記憶體中。這使得Redis速度很快。...

  • 發佈於 2020-10-19 23:25
  • 閲讀 ( 44 )

通用(generic)和c中的非泛型集合#(non-generic collection in c#)的區別

...小。 一些非泛型集合類是ArrayList、SortedList、Stack、Queue和HashTable。每個集合類實現IEnumerable介面。它有助於使用foreach迴圈遍歷集合中項的元素。 ArrayList是陣列的一種替代方法。如果有一個數組可以儲存10個元素,它就不能儲存20...

  • 發佈於 2020-10-24 01:08
  • 閲讀 ( 52 )

隱私(privacy)和安全(security)的區別

...止此類攻擊。因此,安全性意味著使用各種技術(如加密和雜湊函式)來提供這三種服務的機密性、完整性和可用性。 什麼是隱私(privacy)? 隱私是保密的一個類似術語。在這裡,只有有意或被授權的一方可以分享祕密,而未經...

  • 發佈於 2020-10-25 16:20
  • 閲讀 ( 47 )

厭倦了skype?7個最佳免費skype備選方案

... 與此列表中的其他一些應用程式相比,Jami也是獨一無二的。它不依賴集中式伺服器進行通訊,而是使用分散式雜湊表(DHT)。 ...

  • 發佈於 2021-03-18 11:47
  • 閲讀 ( 47 )

4個簡單的資訊雜湊torrent磁鐵轉換器

...以使用資訊雜湊繞過集中的torrent跟蹤器,透過分散式散列表(DHT)直接與對等方通訊。 ...

  • 發佈於 2021-03-19 07:52
  • 閲讀 ( 49 )

6個免費的雜湊檢查程式來檢查任何檔案的完整性

...湊生成。您可以載入HashMyFiles,其中包含需要雜湊的檔案列表,將其設定為有效,並接收整個列表的雜湊。 ...

  • 發佈於 2021-03-19 07:54
  • 閲讀 ( 44 )

redis和php快速資料儲存入門

... Redis中的列表是具有特定順序的一維陣列,允許列表中不同位置的重複項。可以使用lpush和rpush命令將項新增到列表的左側或右側。 ...

  • 發佈於 2021-03-28 11:57
  • 閲讀 ( 39 )

為什麼公司仍然用純文字儲存密碼?

...其儲存為.txt檔案。為了安全起見,應該對密碼進行加密和雜湊,那麼為什麼2019年不會發生這種情況呢? 為什麼密碼不能以純文字形式儲存 designer491/Shutterstock 當一家公司以明文形式儲存密碼時,任何擁有密碼資料庫或密碼儲存...

  • 發佈於 2021-04-03 07:31
  • 閲讀 ( 46 )
Ummeeee
Ummeeee

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦