几个概念
- 桶(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也需要查询,
posted @
2016-11-15 15:19
sonng
阅读(
340)
评论()
编辑
收藏
举报