Java HashMap解读

Java HashMap解读Hash表介绍Hash函数本质是建立一个值-索引的映射关系,通过这个映射关系来节约遍历列表的时间,是一种权衡了时间和空间消耗的算法,当出现Hash冲突后,可以采用链地址,哈希再散列等方法来解决Java中计算HashCodeJava中自带的hashCode方法是一个Native方法,具体实现在C代码中,主要通过将对象的地址位移来制造随机数,进而作为对象的哈希值但...
摘要由CSDN通过智能技术生成

Java HashMap解读

Hash表介绍

Hash函数本质是建立一个值-索引的映射关系,通过这个映射关系来节约遍历列表的时间,是一种权衡了时间和空间消耗的算法,当出现Hash冲突后,可以采用链地址,哈希再散列等方法来解决

Java中计算HashCode

Java中自带的hashCode方法是一个Native方法,具体实现在C代码中,主要通过将对象的地址位移来制造随机数,进而作为对象的哈希值

但是对于不同的类来说,hashCode的方法又有所不同,这是因为相同值需要相同的hashcode,但是传统的hashcode是以地址为凭证的,所以重写了equal的方法的类,那么他的hashcode也同样需要重写,因此对于String,Integer等类来说,各自hashcode方法都各不相同

HashMap
主要变量介绍

变量名 介绍 默认值
DEFAULT_INITIAL_CAPACITY 默认初始大小 16
MAXIMUM_CAPACITY 最大大小 1<<31
DEFAULT_LOAD_FACTOR 负载因子 0.75

初始化
初始大小为2的倍数,例如用户指定大小为24,那边系统就会创建一个大小为32的HashMap,负责大小的阈值为32*0.75=24,也就是当数据超过24时,HashM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值