位置: 编程技术 - 正文

HashMap类的理解(hashmap详细讲解)

编辑:rootadmin

推荐整理分享HashMap类的理解(hashmap详细讲解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:hashmap类的方法有哪些,hashmap有什么特点,hashmap类的方法,hashmap的实现原理,hashmap详细讲解,hashmap类的方法,hashmap详细讲解,hashmap中常用的方法总结,内容如对您有帮助,希望把文章链接给更多的朋友!

HashMap是一个散列表,它的存储内容是键&#;对。

紫色部分代表哈希表,每个元素后面都是一个单链表的头结点。

源码分析:

上面源码,

hashMap初始容量为4个,最大容量为2的次幂,增长因子为0.,在进行扩容时,扩容数量=增长因子*当前容量。第行,为对应的hash表

HashMapEntry对已的结构:

Put

1.当key为null时,在行先检测entryForNullKey是否为空

1.1 如果不为空,在行直接更新entryForNullKey的value,并返回对应的HashMapEntry。

1.2 如果为空,在行和行出,new 一个HashMapEntry,然后赋给entryForNullKey。

HashMap类的理解(hashmap详细讲解)

备注:key为null的时候,entryForNullKey是作为hashMap的一个变量,存储key为null的HashEntry的,并没有将key为null并入哈希表中

2.当key不为null时,通过key的hashcode找到哈希表中的index,然后遍历index位置下的链表,通过行的比较(通过hashcode和key的equals共同确认是否是需要找的entry)

2.1 如果找到,直接替换value

2.2 如果未找到

2.2.1 在行,比较是否需要扩容,下面是扩容的方法:在行,扩容时以当前容量的2倍进行扩容的。

2.2.2 然后通过addNewEntry方法,将新的entry加入到里面去。

2.2.3 在addNewEntry中,即行,直接是table[index]=new HashMapEntry,由此可见,每次put的Entry都在链头。

Remove

1.当key==null时,若entryForNullKey!=null,则直接将entryForNullKey=null。

2.当key!=null时,寻找entry的方式和put一样,最终通过比对hashcode以及equals比较,确认需要remove的entry。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android TabHost布局 Android之TabHost布局1.概念盛放Tab的容器就是TabHost。TabHost的实现有两种方式:第一种继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。各个Tab中的内

Android 编程下 Touch 事件的分发和响应机制 Android中与Touch事件相关的方法包括:dispatchTouchEvent(MotionEventev)、onInterceptTouchEvent(MotionEventev)、onTouchEvent(MotionEventev);能够响应这些方法的控件包括:ViewG

Android 初始化之Zygote 系统整体框架了解android初始化之前,有必要了解一下系统的整体框架,下图是网上流传比较经典的架构图:android的启动主要是linux内核启动之后,init进

标签: hashmap详细讲解

本文链接地址:https://www.jiuchutong.com/biancheng/380963.html 转载请保留说明!

上一篇:Android 科大讯飞语音交互API简单使用(android 科大讯飞语音引擎 调用无响应)

下一篇:Android TabHost布局(android tabview)

  • 预缴税款如何做会计分录
  • 工厂道路设计图
  • 息税前利润变动率
  • 进项大于销项的会计分录怎么做?
  • 企业收购资金计算公式
  • 代办汽车过户手续
  • 收到退款如何做账
  • 委托加工收回后直接销售的消费税
  • 企业非正常
  • 发票上有个含税金额什么意思?
  • 季度报税是哪个税种
  • 员工报销医药费计入什么费用
  • 固定资产怎么填报
  • 外经证过期没报验
  • 税务异常不处理会的后果
  • 协会会费计入什么会计科目二级
  • 评估的房产如何入账
  • 无形资产入股注意事项
  • 跨年度增值税发票作废怎么退税
  • 股权转让协议解除返还股权优先权
  • win7右键设置方法
  • 什么级别的cpu需要水冷
  • 深度学习中模型计算量(FLOPs)和参数量(Params)的理解以及四种计算方法总结
  • 短期投资的入账金额包括已宣告未发放的现金股利
  • 公司向股东借款多久必须归还
  • php获取并显示用户的用户名
  • 从零开始吧
  • html动画教程
  • idea如何运行别人的vue项目
  • php项目怎么打包
  • 报废产品需要入库吗
  • 申请税控盘流程需要几个工作日
  • 企业应收账款的主要内容
  • 应收的货款
  • openglskia是什么意思
  • 固定资产报废的请示
  • 个人所得税专项附加扣除2023
  • 小额支出的两种形式
  • 资产负债表和利润表的区别
  • 汇算清缴补交的所得税怎么记帐
  • 积分获取和消费的关系
  • 预计净残值是怎么算出来的
  • 生产成本月末结转后有余额吗
  • 小微企业享受免税吗
  • 老板自己出钱买办公用品怎么做账
  • 房租付了没有及时取得发票怎么入账
  • 增值税销项税额属于什么科目
  • 出口退税的发票是专票还是普票
  • 电子银行承兑到期没有兑现怎么办
  • 应交税费包括哪些科目
  • 印花税的范畴
  • 盘盈盘亏做好记录这句好怎么说
  • 汽油费进项税额能抵扣吗
  • 收到商业承兑汇票的会计分录
  • 会计结账一般都是谁做
  • 滞纳金在年报的营业外支出的哪一项?
  • 做假账本怎么判
  • 销售商品托收承付怎么确认收入
  • vmware虚拟机怎么卸载不了
  • android-x86安装
  • vc6运行程序
  • win7关闭窗口的方式有哪些
  • linux wc命令详解
  • Win8.1不借助第三方软件怎么给文件夹加密并隐藏
  • win7网络正常但是所有浏览器网页打不开
  • win7累计更新补丁包
  • win8.1系统如何升级到win11
  • windows10储存
  • 安卓摄像头设置在哪里
  • Linux中的host命令应用实例详解
  • jsoni
  • [置顶]星陨计划
  • js模块化框架
  • python多进程模块
  • python toad
  • 包装物押金收入含税吗
  • 安徽国家税务局增值税发票查询平台
  • 国家税务局机打发票可以报销吗
  • 外资企业怎样
  • 纳税人办理汇算清缴
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设