HashMap的简单介绍

HashMap简单介绍

基本hash算法的图,是一种数据结构。List,Set,Map,Queue都是数据结构(容器)。
hash的数据结构包括:线性结构、树、堆、图。

1.Hash

什么是Hash
把任意长度的输入,通过散列算法变成固定长度的输出,对于同一个hash算法,同样的输入,会有同样的输出。hash是一个广义的算法.

特点
1.不同的输入,经过hash之后的输出可能会出现相同的值
2.很难找到输出值逆向的规律
用处
1.提高存储空间的利用率
2.提高查询的效率
3.做数字签名保证数据传递的安全性
4.作为加密的一种方式

2.HashMap

特点
1.它内部的基础结构是数组。
2.put进去的键值对不是按顺序排列的
3.put一个key-value的时候,先根据key计算出一个hash值,得出存放的位置
HashMap冲突多了会怎样?
冲突多了话就会很卡
HashMap如何处理hash冲突?
桶:数组中每个元素就是一个桶,不冲突的时候每个桶只存放一个键值对Node
冲突有多点,Node的next属性不为空,组成链表
冲突非常多,一个桶超过8个,升级为红黑树
HashMap类中几个重点的属性:
capacity:容量,数组的长度
size:实际装的数量
loadFactor:负载因子,百分比,size到了百分之多少,就扩大容量
threshold:扩容的阈值,size达到多少个数量的时候,就扩大容量,等于capacity*loadFactor

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值