博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HashMap
阅读量:7062 次
发布时间:2019-06-28

本文共 516 字,大约阅读时间需要 1 分钟。

hot3.png

  HashMap 是基于数组与链表来实现的,默认容量16,默认装载系数0.75,阀值【默认长度X0.75】数组查询比较快,而链表增删改比较快,其中的put方法,看table是否为空,若为空,进行初始化.首先传入K与V键值对判断key的值是否为nullkey若为null 则放在hash表首位,不为null 求出hash值,根据hash值与数组的长度 做与的运算 来判断把元素放到hash表的那个位置首先看当前key与我要放的位置元素的key是否一致,一致时执行更新操作 ,旧值返回存储新值 不一致时 调用AndEntry方法在内部判断hashmap是否需要扩容,当前key与value值的个数大于等于他的阀值时 进行扩容 一次扩为原来的两倍 否则无需扩容,完成后调用caryentry方法,在方法内部先把储存的hash桶下标所对应的entry对象 先拿出来 把新值存进去 ,旧值放到新的entry对象对应的next引用中去若已存在值,则产生hash碰撞产生链表 //处理旧对象放到 新entry内部map引用指向位置 旧值赋给map引用

转载于:https://my.oschina.net/demons99/blog/1921837

你可能感兴趣的文章
分享我的个人项目:Wildfire 野火评论系统
查看>>
【机器视觉与图像处理】基于MATLAB的角度计算
查看>>
一篇很全面的IOS面试题(下)
查看>>
极简.高性能.分布式框架,可运行于多种环境(apache/php-fpm,swoole)
查看>>
DESTOON7.0农产品B2B供应求购交易平台源码
查看>>
node js 批量处理pdf,提取关键信息,并导出excel
查看>>
05 Objective C数组的四种遍历方法总结
查看>>
少侠请重新来过 - Vue学习笔记(五) - 指令
查看>>
关闭webstorm(2017.3.5)的分号检测
查看>>
设计模式(二十三)中介者模式
查看>>
重学前端(六)-JavaScript中的class
查看>>
技术并非一切,做做 Side Project 吧
查看>>
ViewPager+seekBar的联动效果
查看>>
EON Realitycn IDC 开放日
查看>>
用Python监听邻居家小姐姐的上网行为
查看>>
Quora关于如何学习动态规划的一些建议
查看>>
css(二):高度与文档流,line-box与box,宽度,position与
查看>>
讲清楚分布式系统中的这个算法,帮你从面试候选人中脱颖而出!
查看>>
Git-Basic
查看>>
Babel 手记
查看>>