HashMap:底层实现概念了解

理解HashMap需要先来了解几个定义:
1,entry对象 : 存放key-value键值对的对象
2,哈希表 : 存放entry对象的数组
3, 哈希冲突 : 当哈希函数计算出的地址被别的元素占用时,就会发生存储地址冲突
4,红黑树 : 内容过多,我参考的是https://www.jianshu.com/p/07526a2f235d和https://www.cnblogs.com/xiehongwei/p/11174225.html这两位大佬的讲解

实现过程

当新建一个hashmap时,就会初始化一个数组用来存放entry对象,通过相应的hash算法计算hashCode来决定对象在数组中的存储位置,然后为了避免hash冲突,hashmap选择选择使用链表法,既在数组的每个存储单元中以链表的形式存储entry对象,具体存储根据由equals方法决定(hashCode相同,equal不同或都不同则存在链表下一个节点),dk1.8的新特性当链表长度大于8后链表会转换成红黑树的形式存储

后期等具体用的到再补充具体操作代码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值