Java进阶:【集合】HashMap原理简单理解
2023-03-20 14:53:31 时间
HashMap原理简单理解
HashMap重要属性:
hashMap构造器:
put方法:
新增方法中的hashCode算法:
计算位置的方法和entry对象:
经典面试题:
装填因子,负载因子,加载因子 为什么是0.75
装填因子设置为1:空间利用率得到了很大的满足,但是很容易碰撞,产生链表,查询效率边低
装填因子:0.5:碰撞几率低,扩容,产生链表几率低,查询快
于是HashMap做了个折中
主数组的长度为什么是2^n
原因1:
数组长度影响位置,H&length-1等效,等效的前提就是length必须是2的整数倍,
原因2:
防止哈希冲突,位置冲突
验证整数倍:
验证非正数倍
非整数倍,位置一样,会产生链表,导致效率变低
相关文章
- Java程序员使用的20几个大数据工具
- 再谈java的内存泄露
- 随机数是骗人的,.Net、Java、C为我作证
- 介绍一个轻量级java的swf处理库
- 保持java线程间可见性的5种方式
- JRuby中调用java带可变参数的方法
- java语言的演化——读JavaOne ppt笔记
- Ruby写Servlet的小例子
- Java如何制作API文档
- Java并发性和多线程介绍
- Java中创建对象的5种方式
- Java多线程CyclicBarrier学习
- Java常见的乱码问题及解决方案
- Java对象创建、分配、布局、访问小析(HotSpot虚拟机)(三)
- Java对象创建、分配、布局、访问小析(HotSpot虚拟机)(二)
- Java对象创建、分配、布局、访问小析(HotSpot虚拟机)(一)
- TomCat之Filter小析
- Java内存模型小析
- SpringMVC解析JSON请求数据小析
- 创建一个简单的web服务器(二):使用自定义的类加载器来替换URLClassLoader