当前位置:   article > 正文

常见集合初始默认值大小及其扩容_list默认长度

list默认长度

List 元素是有序的、可重复

ArrayList、Vector默认初始容量为10

Vector:线程安全,但速度慢,底层数据结构是数组结构,当 元素个数 超过 容量长度 时,进行扩容,扩容大小为原容量的 1倍

ArrayList:线程不安全,查询速度快,底层数据结构是数组结构,扩容大小为原容量的 1.5倍

Set(集) 元素无序的、不可重复。

HashSet:线程不安全,存取速度快

底层实现是一个HashMap(保存数据),实现Set接口

默认初始容量为16(为何是16,见下方对HashMap的描述)

加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容

扩容增量:原容量的 1 倍

如 HashSet的容量为16,一次扩容后是容量为32

Map是一个双列集合

HashMap:默认初始容量为16,长度始终保持2的n次方

(为何是16:16是2^4,可以提高查询效率,另外,32=16<<1 -->至于详细的原因可另行分析,或分析源代码)

加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容

扩容增量:原容量的 1 倍

如 HashMap的容量为16,一次扩容后是容量为32

HashTable:默认初始容量为11

线程安全,但是速度慢,不允许key/value为null

加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容

扩容增量:2*原数组长度+1

如 HashTable的容量为11,一次扩容后是容量为23

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/441447
推荐阅读
相关标签
  

闽ICP备14008679号