HashMap 是Map接口的一个实现类

1、线程 HashMap 非线程安全
2、数据存储结构 hashMap采用Entity数组来存储 key-value对,每一个键值对组成一个Entity,键值对均允许为Null
3、数据结构 数组+链表(JDK1.7之前);数组+链表+红黑树(JDK1.8新增)
4、链表与红黑树之间的转换 数据类型转换的阈值,链表长度超过8的阈值后,就将链表结构转成红黑树结构,当红黑树结构长度阈值小于6,自动转成链表
5、 负载因子 0.75
6、初始化数组容量大小 hashMap初始Entity[]数组容量16,当容量达到阈值后,扩充的容量为bable的2倍,重新计算hash值

HashMap方法

1、HashMap继承结构 AbstractMap是Map的实现类,HashMap通过继承AbstractMap实现部分Map方法。

  

2、get(key) HashMap在获取值时,首先通过Key计算Hash值,获取表数据,根据hash值定位Entity元素,根据key值获取相应的value值。

  

3、put(key,value)同样先通过Key计算出hash值,作为数组的下标;首先获取内存中的数据,然后做了一系列的逻辑判断。
  这里增加了一个红黑树转换的判断。 if (binCount >= TREEIFY_THRESHOLD - 1) // -1 for 1st

  

最新文章

  1. 【bzoj1913】 Apio2010—signaling 信号覆盖
  2. 【bzoj1060】[ZJOI2007]时态同步
  3. if语句写在while语句外面效率更高
  4. Stackdump: 一个可以离线看stackoverflow的工具
  5. (转)Spring MVC
  6. MVC整个样例的源代码
  7. 实现koa中的generator用法
  8. asp.net在类库中使用EF 6.0时的相关配置
  9. WPF DataTrigger数据触发器
  10. cobbler自动化安装系统
  11. SQL语句取多列的最小值(排除0)
  12. android studio——Failed to set up SDK
  13. js实现复制文本内容到剪切板
  14. elementUi中的计数器ele-mumber中的change事件传参及事件调用
  15. NSIS 查找目录下的所有文件夹
  16. Eclipse——Note
  17. vue-preview的使用
  18. Linux3.10.0块IO子系统流程(4)-- 为请求构造SCSI命令
  19. 【转】VSCode Web开发插件
  20. 使用内省的方式操作JavaBean

热门文章

  1. 想学好Python,你必须了解Python中的35个关键词
  2. IDEA解决SVN频繁弹出登录框
  3. python文件处理-将图像根据坐标切割成若干小图
  4. 补充:回答网友的问题,如何不用路径,而直接将CImage画到DC中,之后DC一起显示.
  5. TreeMap实现
  6. 洛谷 P1196 【银河英雄传说】
  7. 【k8s学习笔记】使用 kubeadm 部署 v1.18.5 版本 Kubernetes集群
  8. 我打算用JAVA实现GB/T32960 监控平台的tcp server
  9. python 请使用迭代查找一个list中最小和最大值,并返回一个tuple
  10. GitHub 热点速览 Vol.27:程序员的自我救赎——GitHub 摸鱼