- Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射
- Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口
- Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不能够为null

- 与HashMap不一样的是Hashtable是继承Dictionary,实现了Map接口
- Map是"key-value键值对"接口,Dictionary是声明了操做"键值对"函数接口的抽象类

第三个构造函数:java

(1)table是一个Entry[]数组类型,而Entry实际上就是一个单向链表。哈希表的"key-value键值对"都是存储在Entry数组中的。 数组
(2)count是Hashtable的大小,它是Hashtable保存的键值对的数量。 安全
(3)threshold是Hashtable的阈值,用于判断是否须要调整Hashtable的容量。threshold的值="容量*加载因子"。多线程
(4)loadFactor就是加载因子。函数
(5)modCount是用来实现fail-fast机制的线程

put 方法blog

get 方法索引

Hashtable和HashMap到底有哪些不一样呢:接口
- 基类不一样:HashTable基于Dictionary类,而HashMap是基于AbstractMap
- Dictionary是什么?它是任何可将键映射到相应值的类的抽象父类
- 而AbstractMap是基于Map接口的骨干实现,它以最大限度地减小实现此接口所需的工做
- null不一样:HashMap能够容许存在一个为null的key和任意个为null的value,可是HashTable中的key和value都不容许为null
- 线程安全:HashMap时单线程安全的,Hashtable是多线程安全的
- 遍历不一样:HashMap仅支持Iterator的遍历方式,Hashtable支持Iterator和Enumeration两种遍历方式