1. 程式人生 > >Java集合之Hashtable源碼分析

Java集合之Hashtable源碼分析

null 返回 hash 分析 str hashmap div lec ron

概述

Hashtable也是基於哈希表實現的, 與map相似, 不過Hashtable是線程安全的, Hashtable不允許 key或value為null.

成員變量

Hashtable的數據結構和HashMap一樣, 采用 數組加鏈表的方式實現.

幾個成員變量與HashMap一樣:

技術分享圖片

方法

Hashtable的方法與HashMap基本一樣, 只是 Hashtable方法加上了 synchronized 關鍵字, 保證Hashtable是線程安全的.


主要說說Hashtable與HashMap的不同:

  1. Hashtable不允許 null key和null value, HashMap允許
  2. Hashtable是線程安全的, HashMap線程不安全
  3. Hashtable繼承自Dictionary, HashMap繼承自AbstractMap

Collections 類中存在一個靜態方法:synchronizedMap(),該方法創建了一個線程安全的 Map 對象,並把它作為一個封裝的對象來返回。


可以關註一下鄙人的公眾號, 謝謝各位了!技術分享圖片

Java集合之Hashtable源碼分析