- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 集合系列之 HashMap详细介绍(源码解析)和使用示例.doc
Java 集合系列之 HashMap详细介绍(源码解析)和使用示例
概要
这一章,我们对HashMap进行学习。
我们先对HashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashMap。内容包括:
第1部分 HashMap介绍
第2部分 HashMap数据结构
第3部分 HashMap源码解析(基于JDK1.6.0_45)
第3.1部分 HashMap的“拉链法”相关内容
第3.2部分 HashMap的构造函数
第3.3部分 HashMap的主要对外接口
第3.4部分 HashMap实现的Cloneable接口
第3.5部分 HashMap实现的Serializable接口
第4部分 HashMap遍历方式
第5部分 HashMap示例
第1部分 HashMap介绍
HashMap简介
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。
HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。容量 是哈希表中桶的数量,初始容量 只是哈希表在创建时的容量。加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。
通常,默认加载因子是 0.75, 这是在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查询成本(在大多数 HashMap 类的操作中,包括 get 和 put 操作,都反映了这一点)。在设置初始容量时应该考虑到映射中所需的条目数及其加载因子,以便最大限度地减少 rehash 操作次数。如果初始容量大于最大条目数除以加载因子,则不会发生 rehash 操作。
HashMap的构造函数
HashMap共有4个构造函数,如下:
复制代码
// 默认构造函数。
HashMap()
// 指定“容量大小”的构造函数
HashMap(int capacity)
// 指定“容量大小”和“加载因子”的构造函数
HashMap(int capacity, float loadFactor)
// 包含“子Map”的构造函数
HashMap(Map? extends K, ? extends V map)
复制代码
HashMap的API
复制代码
void clear()
Object clone()
boolean containsKey(Object key)
boolean containsValue(Object value)
SetEntryK, V entrySet()
V get(Object key)
boolean isEmpty()
SetK keySet()
V put(K key, V value)
void putAll(Map? extends K, ? extends V map)
V remove(Object key)
int size()
CollectionV values()
复制代码
第2部分 HashMap数据结构
HashMap的继承关系
复制代码
java.lang.Object
? java.util.AbstractMapK, V
? java.util.HashMapK, V
public class HashMapK,V
extends AbstractMapK,V
implements MapK,V, Cloneable, Serializable { }
复制代码
从图中可以看出:
(01) HashMap继承于AbstractMap类,实现了Map接口。Map是key-value键值对接口,AbstractMap实现
您可能关注的文档
- 602班毕业典礼_其它课程_小升初_小学教育_教育专区.ppt
- 61A 个人和社会都需要公平_图文.ppt
- 628-管理者的角色定位和自我认知_图文.ppt
- 63页重点整理完毕的小升初语文复习资料.docx
- 6S现场管理(内训)_图文.ppt
- 710会计骨干专业实施方案.doc
- 7册教材习作_四年级语文_语文_小学教育_教育专区.ppt
- 7北京人大附初二上学期物理期末(有答案).doc
- 7相互协作的人体器官_图文.ppt
- 8 Organizational Structure Design_图文.ppt
- 【重庆市S街道家庭医生签约服务现状调研分析报告6000字】.docx
- 八年级生物下册教学课件《选择健康的生活方式》.pptx
- 高中高考思想政治一轮总复习课后习题 选择性必修一 当代国际政治与经济 课时规范练30 和平与发展 (2).doc
- 企业社保费申报流程(核定版).docx
- 高中高考思想政治一轮总复习课后习题 选择性必修一 当代国际政治与经济 课时规范练31 中国的外交 (2).doc
- 高中思想政治选择性必修1当代国际政治与经济课后习题 第1单元 各具特色的国家 第一单元过关检测.doc
- 第6章 生物的进化B卷 能力提升—高一生物学人教版(2019)必修二单元达标测试卷.docx
- 高中思想政治选择性必修1当代国际政治与经济课后习题 第2单元 世界多极化 第4课 和平与发展 第2框 挑战与应对 (2).doc
- 高中思想政治选择性必修1当代国际政治与经济课后习题 第3单元 经济全球化 第6课 走进经济全球化 第2框 日益开放的世界经济.doc
- 【泰安交通建设集团人力资源管理模式研究4900字】.doc
最近下载
- 2024年(高级)政工师理论考试题库及答案(含各题型) .docx
- 心中有“数”,脚下有路-五年级(上)期中考试后家长会 课件.pptx VIP
- 大数据环境下企业会计信息化管理模式研究.docx VIP
- 山东省政府采购专家测评题库200-400题.docx VIP
- 2023-2024学年贵州省贵阳市高二(上)期末数学试卷.docx VIP
- 精品解析:2023-2024学年山东省青岛市城阳区青岛版三年级上册期末考试科学试卷(解析版).docx VIP
- 能源管理工作总结.pptx
- 2024-2025学年初中体育与健康七年级全一册(2024)人教版(2024)教学设计合集.docx
- 诗词格律十讲王力.pdf
- 山东省青岛市2023-2024学年三年级上学期期末科学试题.pdf VIP
文档评论(0)