HashMap原理

简介: 1.HashMap在Jdk1.8以后是基于数组+链表+红黑树来实现的,特点是,key不能重复,可以为null,线程不安全2.HashMap的扩容机制:HashMap的默认容量为16,默认的负载因子为0.75,当HashMap中元素个数超过容量乘以负载因子的个数时,就创建一个大小为前一次两倍的新数组,再将原来数组中的数据复制到新数组中。当数组长度到达64且链表长度大于8时,链表转为红黑树

1.HashMap在Jdk1.8以后是基于数组+链表+红黑树来实现的,特点是,key不能重复,可以为null,线程不安全

2.HashMap的扩容机制:

HashMap的默认容量为16,默认的负载因子为0.75,当HashMap中元素个数超过容量乘以负载因子的个数时,就创建一个大小为前一次两倍的新数组,再将原来数组中的数据复制到新数组中。当数组长度到达64且链表长度大于8时,链表转为红黑树

目录
相关文章
|
11月前
|
小程序 物联网 API
PHP在哪些领域有应用?
【10月更文挑战第11天】PHP在哪些领域有应用?
260 2
|
11月前
ThreeJs绘制圆柱体
这篇文章介绍了在Three.js中绘制圆柱体的方法,包括创建圆柱体几何体、设置材质以及将其正确放置在三维场景中的技巧。
246 0
ThreeJs绘制圆柱体
|
11月前
|
编译器 API 定位技术
API和SDK的区别
API(应用程序编程接口)和SDK(软件开发工具包)的主要区别在于范围、内容、抽象程度及使用方式。API定义了软件组件间的交互规则,范围较窄,更抽象;而SDK提供了一整套开发工具,包括API、编译器、调试器等,范围广泛,具体且实用,有助于提高开发效率。
|
10月前
|
Java
静态变量和实例变量区别
静态变量: 静态变量由于不属于任何实例对象,属于类的,所以在内存中只会有一份,在类的加载过程中,JVM只为静态变量分配一次内存空间。 实例变量: 每次创建对象,都会为每个对象分配成员变量内存空间,实例变量是属于实例对象的,在内存中,创建几次对象,就有几份成员变量。
|
Java Maven
Maven使用第三方jar文件的两种方法<转>
http://www.cnblogs.com/sekai/p/5932206.html   今天用上了。。 ===================== 在Maven中,使用第三方库一般是通过pom.xml文件中定义的dependency从远程repository中下载该库。
1359 0
|
存储 区块链 Python
元宇宙宠物养殖游戏系统开发搭建-附源码部署示例
元宇宙宠物养殖游戏系统开发搭建-附源码部署示例
Labview-创建自定义控件
Labview-创建自定义控件
1509 0
Labview-创建自定义控件
|
Java
使用logback输出日志总结
使用logback输出日志总结
780 0
使用logback输出日志总结
|
XML Java 数据格式
|
JavaScript 前端开发 Java
Nodejs安装及环境配置
nodejs安装及环境配置,保姆级教程,msi安装方式,绿色版本安装方式,多个nodejs共存,nodejs版本管理器。
498 0
Nodejs安装及环境配置