几个概念
- 桶(bucket):hash表里可以存储元素的位置
- hash冲突:equals()返回false的不相等对象的hashCode()值相等,意味着一个bucket要放几个元素
- 容量(capacity):hash表中桶(bucket)的数量
- 初始化容量(initial capacity):创建一个hash表时的桶的数量,默认是16,可以指定
- 尺寸(size):当前hash表中记录的数量
- 负载因子(load factor):负载因子=size/capacity。
- 负载极限:负载因子所能达到的最大值,默认的负载极限是0.75
- rehashing:hash表的容量发生变化后,重新分配各元素在hash表中的位置
机制与性能:
- 同一个bucket里的元素,按链表形式存储
- 当负载因子达到负载极限时,capacity会自动成倍增加,并重新分配已有元素的存储位置,这会导致性能下降,如果要一次存入大量元素,应指定capacity,防止频繁的rehashing降低性能
- 负载极限小,占用的内存空间大,能提高数据的查询性能,
- 负载极限大,占用的内存空间小,但会增加查询数据的时间开销,不只是get,put也需要查询,
相关文章:
-
2022-01-19
-
2021-10-18
-
2022-12-23
-
2022-01-22
-
2022-01-07
-
2021-10-05
-
2022-02-03
-
2021-10-14
猜你喜欢
-
2021-10-06
-
2022-12-23
-
2021-11-29
-
2021-07-25
-
2021-06-10
-
2021-11-26
-
2022-12-23
相关资源
-
下载
2023-01-17
-
下载
2023-01-29
-
下载
2023-01-15