什么是hash
hash:就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法变成一个固定长度的值,hash是一个广义的算法,思想。
特点:不同的输入经过hash算法之后计算输出可能一样。
什么是HashMap
**HashMap(哈希映射) 是基于hash算法的图,是一种数据结构
HashMap内部结构是数组
HashMap put进去的键值对不是按顺序排列的
HashMap **
HashMap冲突会影响查询效率
如何解决hash冲突方法:不冲突的时候每个桶都有一个键值对,如果冲突有点多,node的next属性不为空,组成链表,如果冲突过多,就把链表升级为红黑树。
HashMap的几个重要属性:
capacity:容量:数组的长度
size:实际装的数量
loadFactor:负载因子,百分比,size到了一定的数量,就扩大容量。
threshold:扩容的阈值,当size到达了某个指定的数量时,就扩大容量,等于capacity*loadFactor=threshold。