Hashtable
特点
- 和HashMap处于同一级,实现了Map接口,继承了Dictionary类
- Hashtable的key和value都不能为null,否则会抛出NullPointException
- 是线程安全的,带有synchronized修饰
扩容机制
- 底层有数组Hashtable$Entry[ ],初始化大小为11
- 临界值threshold为8 = 11/* 0.75
- 而后按照自己的扩容机制扩容
- 执行方法addEntry(hash,key,value,index),添加k-v封装到Entry
- 当count >= threshold时,进行扩容
- 按照 int newCapacity = (oldCapacity << 1) + 1的大小扩容
HashMap和Hashtable对比

Properties
特点
- 实现了Hashtable接口,间接实现了Map接口,因此也不能放置null
- 使用特点和Hashtable类似
- !!!Properties更多的应用场景是:从xxx.properties文件中,记载数据到Properties类对象,并进行读取和修改(说明:工作后xxx.properties文件通常作为配置文件)
使用例子
public class Properties_{
public static void main(String[] args){
Properties properties = new Properties();
properties.put("john",100);
properties.put("mike",80);
properties.put("lucy",60);
properties.put("Wang",40);
properties.put("Tyler",20);
}
}