首页 > 编程知识 正文

HashMap原理和rehash解释

时间:2023-05-04 22:30:18 阅读:186039 作者:3773

采用混列结构的集装箱除了采用混列算法确定集合中元素的位置外

通过hash算法控制集合的大小

HashMap的内部实现机制

HashMap的内部实现机制是数据结构内的哈希表(Hash Table )的实现,哈希表也称为哈希表。

Hash表是一种数据结构,它基于键码Key访问相应的值Value,并使用映射函数将键码映射到表中的位置

访问此位置的值以加快搜索。 此映射函数称为Hash函数,存储的数组称为Hash表。

实现散列:

主要是散列算法和冲突的解决

计算出map中key的散列值,在散列表中找到key、value的位置,从key中查找value

如果多个哈希值发生冲突,则使用链表结构在哈希值的同一位置存储多个对象,当hashMap访问map时

根据key的hashCode值快速定位。 如果HashMap中的两个或多个元素具有相同的hashCode值,则会导致性能下降

rehash说明:

可以在创建hashMAP时设置参数。 通常是默认值

容量:创建哈希表时的桶数

负载因子:负载因子=map的size/初始化容量

当hash表中的负载因子达到负载极限时,hash表自动增加两倍的容量(桶的数量),将原始对象

的重新分配,并放入新桶中。 这被称为rehash。 这个过程性能足够好,一般不需要

一般来说,为了防止rehash,建议设置相对较大的初始化容量,但太大、初始化容量太大,也不能浪费空间

参考java疯狂讲义

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。