HashTable的故事
很早之前,在讲HashMap的时候,我们就说过hash是散列,把...弄碎的意思。hashtable中的hash也是这个意思,而table呢,是指数据表格,也就是说hashtable的本意是指,一份被数据被打散,分散在各处的数据表格。
HashTable,作为jdk中,极早提供的容器类(jdk1.0),同时是支持数据并发的类,其在项目中的使用却并不是很广泛。在我所经历的项目中,开发人员往往喜欢使用hashMap然后再通过锁,创造出线程安全的环境。即使是后来推出concurrentHashMap,其使用的地方也并没有特别广泛。究其原因,我觉得是由于开发人员对于其他hash容器并不熟悉。更愿意使用已有的较为熟悉的hash容器,即使他们在此处的应用比较费事。
好了,废话不多说,我们直接开始进入正题吧:
hashTable继承自dic类,同时实现了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;
瞬时数组变量,它就是hashtable中,最核心的数据存储区域。
网友评论