集合框架第24天(HashMap源码及HashTable(因身体不适,学习无进展))

HashMap源码

HashMap的初始容量大小:1<<4
HashMap的最大容量:1<<30
默认加载因子:0.75f(即大于75%就扩容)
jdk1.8当链表大于8时,调整为红黑树
jdk1.8当链表小于6时,调整为链表
总结:
(1)HashMap刚创建时,table是null, 为了节省空间,当添加第一个元素是,table容 量调整为16
(2)当元素个数大于阙值(16*0.75=12)时,会进行扩容,扩容后大小为原来的2倍。目的是减少调整元素的个数。
(3)jdk1.8当每个链表长度大于8,并且数组元素个数大于等于64时,会调整为红黑树,目的提高执行效率
(4)jdk1.8当链表长度小于6时,调整成链表
(5)jdk1.8以前,链表时头插入,jdk1 .8以后时是尾插入

HashTable

线程安全,运行效率慢,不允许出现null值作为key或者value

posted @ 2022-07-14 21:26  不再犹豫27  阅读(10)  评论(0)    收藏  举报