负载因子的大小决定了HashMap的数据密度。
负载因子越大数据密度越大,发生碰撞的机率越高,数组中的链表越容易长,造成查询或插入时的比较次数增多,性能会下降。
负载因子越小数据密度越小,发生碰撞的机率越小,数组中的链表也就越短,查询和插入时比较的次数也越小,性能会更高,就越容易触发扩容,会浪费一定的内存空间。经常扩容也会影响性能,建议初始化预设大一点的空间。
将负载因子设置为0.7~0.75,此时平均检索长度接近于常数。
HASHmap很好的文章
面试官: HashMap内部节点是有序的吗?
安琪拉: 是无序的,根据hash值随机插入
面试官: 那有没有有序的Map?
安琪拉: LinkedHashMap 和 TreeMap