(1) 存放的元素是键值对:即 k - v
(2) hashtable的键和值都不能为null
(3) hashTable 使用方法基本上和HashMap一样
(4) hashTable 是线程安全的,hashMap是线程不安全的
小结: HashTable的底层
- 底层有数组 Hashtable$Entry[] 初始化大小为 11
- 临界值 threshold 8 = 11 * 0.75.
- 扩容 :按照自己的扩容机制来进行即可.
- 执行 方法 addEntry(hash,key,value,index);添加 k - v 封装到Entry
- 当if(count >= threshold) 满足时,就进行扩容
- 按照 int newCapacity = (oldCapacity << 1) + 1;的大小扩容.
版本 | 线程安全(同步) | 效率 | 允许null键和null值 | |
HashMap | 1.2 | 不安全 | 高 | 可以 |
HashTable | 1.0 | 安全 | 较低 | 不可以 |