java Arraylist、LinkedList、Vector、HashMap、HashTable初始大小,扩容因子
ArrayList 初始容量:10 ,扩容因子:1,当容量达到上限后才会触发扩容。
扩容公式:新容量 = 旧容量/2 + 旧容量 + 1
比如:初始容量为4,其容量的每次扩充后的新容量为:4->7->11->17->26->...
即每次扩充至原有基础的1.5倍
LinkedList
linkedList没有初始化大小,它就是一个双向链表,没有扩容,就是一直在前面或者在后面新增就好
Vector 初始容量:10 ,扩容因子:1,当容量达到上限后才会触发扩容。
扩容公式:old*2 如:一次扩容为20、二次扩容为40
HashSet 初始容量:16(Hashset是基于HashMap的所以是16)
扩容因子:0.75,当容量达到最大容量的75%时就会触发扩容。
扩容公式:old*2 如:一次扩容32,二次扩容64
HashMap 初始容量:16(为何是16,16是2^4,16<<1=32,可以提高查询效率)
扩容因子:0.75,当容量达到最大容量的75%时就会触发扩容。
扩容公式:old*2 如:一次扩容32,二次扩容64
Hashtable
默认初始容量为11,线程安全,但是速度慢,不允许key/value为null。
加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍时,进行扩容。
扩容增量:2*原数组长度+1,如 HashTable的容量为11,一次扩容后是容量为23。
扩容公式:新容量 = 旧容量/2 + 旧容量 + 1
比如:初始容量为4,其容量的每次扩充后的新容量为:4->7->11->17->26->...
即每次扩充至原有基础的1.5倍
LinkedList
linkedList没有初始化大小,它就是一个双向链表,没有扩容,就是一直在前面或者在后面新增就好
Vector 初始容量:10 ,扩容因子:1,当容量达到上限后才会触发扩容。
扩容公式:old*2 如:一次扩容为20、二次扩容为40
HashSet 初始容量:16(Hashset是基于HashMap的所以是16)
扩容因子:0.75,当容量达到最大容量的75%时就会触发扩容。
扩容公式:old*2 如:一次扩容32,二次扩容64
HashMap 初始容量:16(为何是16,16是2^4,16<<1=32,可以提高查询效率)
扩容因子:0.75,当容量达到最大容量的75%时就会触发扩容。
扩容公式:old*2 如:一次扩容32,二次扩容64
Hashtable
默认初始容量为11,线程安全,但是速度慢,不允许key/value为null。
加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍时,进行扩容。
扩容增量:2*原数组长度+1,如 HashTable的容量为11,一次扩容后是容量为23。
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
· Windows 提权-UAC 绕过
2014-01-07 Spring+Quartz 集群