HashMap总结
1、HashMap刚初始化时,table为null,为了节省空间;当添加第一个元素时,table容量为默认容量16. 2、当元素个数大于(HashMap默认容量16*负载因子0.75)时,会触发扩容机制,扩容后的大小为原来的2倍,目的是为了减少调整元素的次数。 3、JDK8中,当链表元素个数大于8时,会转换为红黑树,目的是为了提高效率。 4、JDK8中,当链表长度小于6时,会转换为链表。 5、JDK8前HashMap中的链表采用头插法,JDK8后采用尾插法。
1、HashMap刚初始化时,table为null,为了节省空间;当添加第一个元素时,table容量为默认容量16. 2、当元素个数大于(HashMap默认容量16*负载因子0.75)时,会触发扩容机制,扩容后的大小为原来的2倍,目的是为了减少调整元素的次数。 3、JDK8中,当链表元素个数大于8时,会转换为红黑树,目的是为了提高效率。 4、JDK8中,当链表长度小于6时,会转换为链表。 5、JDK8前HashMap中的链表采用头插法,JDK8后采用尾插法。