目录
一、HashTable基本介绍
二、HashTable底层源码解析
1.初始化数组长度为11,临界值为8(0.75*11),加载因子是0.75
2.对存放的值进行自动装箱
3.执行put方法
4.计算key的hash值
5.计算索引值,放入table数组中
6.插入重复的key会被替换
三、HashTable的扩容机制
四、HashMap与HashTable的对比
一、HashTable基本介绍
- HashTable存放的元素是键值对:即K-V
- HashTable的键和值都不能为null,否则会抛出NullPointerException
- HashTable使用方法基本上和HashMap一样
- HashTable是线程安全的(synchronized),HashMap是线程不安全的
- HashTable的底层是一个Entry数组
二、HashTable底层源码解析
1.初始化数组长度为11,临界值为8(0.75*11),加载因子是0.75
2.对存放的值进行自动装箱
3.执行put方法
4.计算key的hash值
5.计算索引值,放入table数组中
6.插入重复的key会被替换
替换前:
替换后:
三、HashTable的扩容机制
HashTable的扩容在addEntry方法的rehash方法中执行:
注意:当存放的元素个数超过临界值8才会扩容。
扩容是将原来的数组*2+1,所以原有数组长度为11,扩容后是23。