JAVA源码阅读-HashMap(一)

       HashMap 是Java集合框架下常用的一类,其以Key-Value的形式保持数据;HashMap是Map接口的实现,通过hash算法实现key-value的存储。

一、HashMap的继承结构

继承结构

       实现接口

HashMap 实现了: Map<K,V>、Cloneable、Serializable 接口;

       实现子类

       关于HashMap的直接实现子类,后续介绍,本文不做分析;

二、HashMap的数据结构

HashMap 是数组+链表+红黑树的结构(java 1.8);

         

三、HashMap的基础属性参数

常量

属性说明
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //缺省初始容量 
static final int MAXIMUM_CAPACITY = 1 << 30;//最大容量
 static final float DEFAULT_LOAD_FACTOR = 0.75f;   //缺省转载因子
static final int TREEIFY_THRESHOLD = 8;    //链表转换成树的阈值
 static final int UNTREEIFY_THRESHOLD = 6;  //树转换成链表的阈值
 static final int MIN_TREEIFY_CAPACITY = 64;    //转换树后表格最小容量               

成员变量

属性说明
transient Node<K,V>[] table;   HashMap 基础结构,保存键值对
transient Set<Map.Entry<K,V>> entrySet;entrySet集合
transient int sizemap大小
transient int modCountHashMap结构修改次数
int threshold;下一次重新分配table数组的阈值
final float loadFactor;哈希表的转载因子                           

下一节将对HashMap的构造方法以及基础的成员函数进行分析

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值