Hashtable源码介绍过程扩容

本文介绍了Hashtable,一个线程安全的键值对存储类,其基本操作与HashMap类似。Hashtable不允许键值对为null,并在达到特定负载因子时进行扩容。当线程安全是必要条件时,Hashtable是一个选择,但其效率相对较低。相比之下,HashMap是非线程安全的,但在单线程环境中性能更高,允许null键值。理解这两个数据结构的差异对于选择合适的数据存储方案至关重要。
摘要由CSDN通过智能技术生成

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值
HashMap1.2不安全允许
Hashtable1.0安全较低不可以
        |      |                  |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值