位置: 编程技术 - 正文

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系统如何查看主板型号
  • 是否填写国家统计局一套表
  • .linux文件
  • 只有收据没有发票可以保修吗
  • 预付购买材料款会引起会计等式
  • 进程program
  • 金鱼草的养殖方法和注意事项有哪些
  • 无痛人流多少钱?
  • php foreach二维数组
  • uni-app list
  • php中哪个命令用来删除当前目录
  • 爱德华王子岛的气候
  • php自定义变量的方法是
  • php504错误
  • 旅行费发票
  • promise thenable
  • 成本降低率是什么意思
  • 管理费用包括哪些会计科目
  • 什么情况下不用割包皮
  • 未确认融资费用报表填在哪个科目
  • 上期未申报怎么办
  • vue elementui table
  • 已经提完折旧的房产价值评估
  • 开房租发票交的税因优惠政策退税如何账务处理?
  • 三证合一后个体交税吗
  • 商誉在资产负债表中如何体现
  • 实收资本属于限定性净资产吗
  • 合伙人资本属于个人资本吗?
  • 哪些进项税额不能抵扣
  • 计提坏账准备如何做会计分录
  • 房地产企业实际发生的税金及附加
  • 企业取得的财政性资金
  • 企业取得交易性金融资产的主要目的是
  • 员工外面有自己的公司
  • 车辆处置收入怎么交税
  • 公司厨房用具
  • 跨年的施工项目成本
  • 物业公司收取电费服务费
  • 超期未备案可以投诉么
  • 公司劳务过账的法律依据
  • 原始凭证的审核和填制
  • 个体工商户建账流程
  • 积分中的换元怎么使用
  • 商品库存明细账
  • mysql怎么切换到bin目录
  • mysql 创建root用户和普通用户及修改删除功能
  • mysql查询单条数据
  • win7/win8.1/win10系统下如何配置Java环境变量 Java环境变量的配置教程介绍
  • Linux系统磁盘分配
  • ubuntu flash player
  • SMax4.exe - SMax4是什么进程
  • win10系统自带输入法怎么关闭
  • win8系统怎么打开运行
  • 如何更改忘记密码中的问题
  • linux系统的
  • 微信小程序tabbar字体颜色
  • js弹出提示窗口
  • 各种手机ui大全
  • actionbar如何添加按钮
  • flask框架下使用scrapy框架
  • 销售黄金饰品
  • 武汉经济技术开发区法院立案庭电话
  • 钢管租赁可以开建筑材料吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设