HashTable的故事

很早之前,在講HashMap的時候,我們就說過hash是散列,把...弄碎的意思。hashtable中的hash也是這個意思,而table呢,是指數(shù)據(jù)表格,也就是說hashtable的本意是指,一份被數(shù)據(jù)被打散,分散在各處的數(shù)據(jù)表格。

HashTable,作為jdk中,極早提供的容器類(jdk1.0),同時是支持數(shù)據(jù)并發(fā)的類,其在項目中的使用卻并不是很廣泛。在我所經(jīng)歷的項目中,開發(fā)人員往往喜歡使用hashMap然后再通過鎖,創(chuàng)造出線程安全的環(huán)境。即使是后來推出concurrentHashMap,其使用的地方也并沒有特別廣泛。究其原因,我覺得是由于開發(fā)人員對于其他hash容器并不熟悉。更愿意使用已有的較為熟悉的hash容器,即使他們在此處的應用比較費事。

好了,廢話不多說,我們直接開始進入正題吧:

hashTable繼承自dic類,同時實現(xiàn)了map接口和Cloneable、Serializable兩個接口,代表該類是可復制、序列化的類。

public class Hashtable<K,V>    extends Dictionary<K,V>    implements Map<K,V>, Cloneable, java.io.Serializable

ps:dic類和map類較為相似,是一個抽象的hash映射類,包含了一些簡單的空方法和接口。

private transient Entry<?,?>[] table;

瞬時數(shù)組變量,它就是hashtable中,最核心的數(shù)據(jù)存儲區(qū)域。

 

        		

網(wǎng)友評論