HashTable
HashTable类早期jdk对哈希表的实现,后续加入了HashMap等新的哈希表实现,目前HashTable已经被建议弃用。
HashTable和HashMap的区别有以下几点:
- HashTable基于Dictionary抽象类实现了Map接口,而HashMap基于AbstractMap实现了Map接口
- HashMap允许key和value为null,而HashTable中不允许
- HashTable是线程安全的,HashMap不是,但Collections类中提供饿了synchronizedMap方法对HashMap进行线程安全封装
类定义
继承了Dictionary抽象类,实现了
1 |
|
成员变量
1 | //底层存储数组 |
构造方法
1 | //传入初始容量和负载因子 |
put
方法被synchronized修饰,线程安全。
对value进行进行非空检查,若为空,报错
1 |
|
get
get方法也被synchronized修饰,线程安全
1 |
|
remove
1 |
|
扩容相关
1 |
|