Hashtable:
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。
○ 父接口:Map
○从以下版本开始: JDK1.0
○ Hashtable 是同步的
○
○面试题:HashMap和Hashtable的区别?
○ 1 产生时间
○ Hashtable jdk1.0
○ HashMap jdk1.2
○ 2 继承的父类不同
○ Hashtable父类:Dictionary
○ HashMap父类:AbstractMap
○ 3 对外提供的接口不同
○ Hashtable比HashMap多提供了elments() 和contains() 两个方法。
○ 4 对Null key 和Null value的支持不同
○ Hashtable 不支持null键和null值
○ HashMap 支持
○ 5 线程安全性不同
○ Hashtable 同步
○ HashMap 不同步
○ 6 遍历方式的内部实现上不同
○ Hashtable、HashMap都使用了 Iterator。
○ 而由于历史原因,Hashtable还使用了Enumeration的方式 。
○ 7 初始容量大小和每次扩充容量大小的不同
○ Hashtable默认的初始大小为11,之后每次扩充,容量变为原来的2n+1。
○ HashMap默认的初始化大小为16。之后每次扩充,容量变为原来的2倍。
public static void main(String[] args) {
Hashtable<String, String> ht = new Hashtable<>();
ht.put(null, null);
System.out.println(ht);
}