HashMap的知识点概括

1.HashMap:
1.HashMap是基于在hash算法的图,也是一种数据结构
2.hash算法是把任意长度的数值,通过散列算法变成固定长度的数值(采用摘要算法)
HashMap的知识点概括_第1张图片
特点:
不同的值,经过hash之后的结果有可能会重复
很难找到逆向的规律(根据结果无法反推出原始值是什么?)

2.HashMap扩容:
我们首先知道扩容就说给数组扩大容量(capacity),如果没有设定它的最大容量的话,它就是默认为16,如果我们一直往里头put,put 填数据的话,我们就得扩大容量,扩容与负载因子有关,负载因子(loadFactor,默认值为0.75f)是表示HashMap满的程度,如果当HashMap中的元素达到容量的一半以上就会自动扩容(threshold:capacity*loadFactor=threshold)

3.如何处理hash冲突:
HashMap的知识点概括_第2张图片
为什么会出现冲突的原因如下:
1.容量不够大,不够大的话,就容易发生冲突,例如:两方人数相差大
2.hash算法不够精准

解决方法:
不冲突的时候每个桶(数组中每个元素)都有一个键值对
1.冲突较多的时候,Node的next属性不为空,组成链表
2.冲突更多的时候,,碰撞也会随之数据的增加而增加,这时候我们引入红黑树的结构,就能够避免效率慢的问题。

你可能感兴趣的:(HashMap的知识点概括)