标签:设置 初始化 hashMap 容量 arrayList 初始值 默认 0.75 初始
我们在使用集合时,加入准备存n个元素进去,那么对于hashmap和arrayList分别该怎么设置初始值大小呢?
HashMap,默认初始容量为16,加载因子0.75,2倍扩容,
如果预知存储为n个,则 n/0.75向上取整为m(此处默认加载因子是0.75),则初始容量设为大于m的最小的2的幂次方的数(其实底层默认就是2的幂次方),较少resize带来的消耗。
n/0.75向上取整为m,然后初始容量设置为大于m的最小的2的幂次方的那个数。比如hashMap预知存3个元素,那么初始值则应该设置为 3/ 0.75 = 4 < X == 2的3次 = 8 .预知存3个元素,则初始值设置为8
ArrayList,默认初始容量10,1.5倍扩容,没有加载因子的说话,所以初始容量设置为n就行,其中ArrayList扩容是通过数组的复制完成,消耗更大。
标签:设置,初始化,hashMap,容量,arrayList,初始值,默认,0.75,初始 来源: https://blog.csdn.net/a116385895/article/details/114588509
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。