集合框架第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
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号