HashMap简单总结

什么是HashMap?

	HashMap(散列图)基于Hash算法键值映射的实现。
  • Map:
    Map是用于储存键值对的集合接口,同collection是同级的集合接口
  • Hash:
    • Hash算法是指将任意长度的输入经过计算之后转换为固定长度的输出;
    • 特点:
      1.无法通过计算出来的Hash值逆推输入的内容
      2.在有限的资源环境中最快速度计算出值
      3.不同的内容存在计算出相同值的可能

为什么要用HashMap?

	可以以极快的速度进行键值映射查询。

HashMap里面有什么?

1.HashMap内部储存数据使用的是一个叫table的对象,
  本质上是一个数组

2.在存储数据时,存储位置不是按顺序储存的。

3.储存位置是根据计算出来的Hash值来决定的。

Hash算法存在的问题:

  • Hash值重复导致的冲突问题

HashMap的解决方式:

  • 桶:桶通俗理解就是数组的一个元素
  • 当Hash值相同时在同一个桶中挂链表
    • 出现的问题:当链表过于长会降低查询速度
  • 在同一个桶中链表长度达到8个链表会升级为红黑树

HashMap还有什么?

  • capcaity:容量(比如一个杯子,一共能装多少水)
  • size:长度(这个杯子装了多少水)
  • loadFactory:负载因子(如果这个杯子满了需要扩充的容量百分比,根据与总容量的乘积得出达到多少长度便扩充)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值