凯哥学堂

搜索

凯哥学堂

哈希集合

2018-4-9 22:23| 发布者: 可可| 查看: 1767| 评论: 0|原作者: 追梦

凯哥学堂 首页 资讯 学习笔记 JavaSE 查看内容

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

哈希集合:

介绍:这个集合它的查找速度是比较快的
arrayList添加的速度大概是2秒,检索速度大概是12秒,而hash集合的添加大概是5秒,检索速度大概是9毫秒,这就说明hash 的检索速度是非常快的,hash 的好处就是检索速度快,因为它添加数据的时候就早就做好你要检索的准备

image

它的原理就是:如下图,如果陆陆续续的加入数据到这个方法中,那它存储的方式就是,首先有个数组,你要查找D的话,首先找到hashCode值,然后取模10,取出来下标是6就马上定位到那里去,它拿的是hashCode值来%10,如果能整除10就是0,如果不能就是1到9之间的余数

image

比方说有序集合的检索就是,你要查找D在哪你要一个个问,这种效率就很低,而hash集合检索的方式不跟这些一样

image

Hash重复是什么意思?
如下图:比方说ABCDEF的存储,存储长度分为四格,存储的时候ABCD都存储进去了,假如那存储E的时候计算存储到B的那个位置,而那里是有值的,那不可能把以前的值冲掉的,那它就想到了单链形式,在B的下面挂一个E,假设F也在B的那个位置,那就挂在E的下面,单链解决hash重复的问题

image

重组是什么意思?
如下图:数据量大的话就形成单链挂在这,挂得多了数据量就大了,数据量大的话检索就慢起来了,要一个个问,那就很麻烦了,所以要扩容重组

image


下一篇:哈希集合

关注我们


微信

微博

QQ