Map接口实现类——Hashtable
HashTable的基本介绍
1)存放的元素键值对即k-V
2)hashTable的键值对都不能为null
3)hashTable使用方法基本上和HashMap一样
4)hashTable是线程安全的 hashMap是线程不安全的
5)简单看下底层结构
简单说一下Hashtable
rehash() 扩容
1、底层是有一个数组 hashtable entry[] 第一次初始化大小是11
2、临界值是 8 约等于11*0.75 将entry里面的四个键值对 放入到table表中
3、扩容:按照自己的扩容机制 11->23 11*2+1
4、执行 方法 addEntry(hash,key ,value,index)
5、当if (count》=threshold)满足时 就进行扩容
6、int newCapacity = (oldCapacity << 1) + 1;
Hashtable和HashMap对比
版本 | 线程安装(同步) | 效率 | 允许null键null值 | |
---|---|---|---|---|
HashMap | 1.2 | 不安全 | 高 | 允许 |
Hashtable | 1.0 | 安全 | 较低 | 不可以 |
| | |