Java集合框架系列——HashMap

直通车:Java集合框架系列目录

  1. 基本概念
  2. 继承关系
  3. 结构特点
  4. 常用API
  5. 遍历方式
  6. 代码示例

1.基本概念

HashMap:一种存储键/值关联的数据结构。

2.继承关系

这里写图片描述

HashMap是一个继承于AbstractMap的散列表,它存储的内容是键值对(key/value)映射。
HashMap实现了Cloneable接口,即覆盖了函数clone(),能被克隆。
HashMap实现java.io.Serializable接口,意即HashMap支持序列化,能通过序列化传输。

3.结构特点

  • 采用“链地址法”
    链地址法,意即数组加链表的结合。在每个数组元素上都有一个链表结构,HashMap通过HashCode对其要插入(put)或查找(get)的元素进行数组元素的快速匹配。
  • 数组初始大小为16,后每次扩容一定是2的幂
    当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值—即当前数组的长度乘以加载因子的值,就会自动扩容。(加载因子默认为0.75)
  • 元素无序排列
    元素处于哪个“哈希桶”(“桶”即数组元素)取决于键(Key)的哈希值(HashCode)。元素具体在链表的哪个位置只能通过遍历得到。
  • 存储键/值对
    键(Key)与值(Value)共同存储在entry节点中,HashMap存储entry节点。
    HashMap最多只允许一条记录的为Null(多条会覆盖),允许多条记录的为 Null。
  • 不是线程安全的
    可以用 Collections的synchronizedMap方法使HashMap具有线程安全的能力,或者使用ConcurrentHashMap

4.常用API

API 含义
clear() 从 Map 中删除所有映射
remove(Object key)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值