Hashtable:synchronized修饰所有方法,JDK1.0出现,线程安全,效率低下,弃用。
Hashtable底层是散列表,基于数组+链表。由于没有红黑树的引入,其put方法与JDK1.8之前HashMap的put相同。
- 根据key的HashCode,求出table的下标索引,遍历链表,找到key值,替代value。
(注意这里的hashCode是采用的对象的hashCode,而并没有重新再哈希/使用位哈希)
而其fail-fast机制是通过modCount来实现的。
get方法也是先获得索引,然后遍历,最后将value返回。
注:
默认初始容量是11,
线程安全,但效率低,不允许key/value为null。
填充/加载因子为0.75。
再哈希/扩容为 2*原始数组长度+1 例如:原来为11 ,扩容后为23。
网友评论