扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要为大家展示了“ArrayList中自动扩充机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ArrayList中自动扩充机制的示例分析”这篇文章吧。
创新互联服务项目包括阿瓦提网站建设、阿瓦提网站制作、阿瓦提网页制作以及阿瓦提网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,阿瓦提网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到阿瓦提省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
ArrayList list = new ArrayList(20);中的list扩充几次
A.0
B.1
C.2
D.3
答案:A
1、ArrayList的默认初始容量为10,当然也可以自定义指定初始容量,随着动态的向其中添加元素,其容量可能会动态的增加,那么扩容的公式为:
新容量 = 旧容量/2 + 旧容量
比如:初始容量为4,其容量的每次扩充后的新容量为:4->6->9->13->19->…
即每次扩充至原有基础的1.5倍
ArrayList的构造函数总共有三个:
(1)ArrayList()构造一个初始容量为 10 的空列表。
(2)ArrayList(Collection extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
(3)ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。
调用的是第三个构造函数,直接初始化为大小为20的list,没有扩容,所以选择A
如果初始化为ArrayList(0),则会在新容量计算完毕后,增加至1;
另外与之类似的还有,
2、HashMap的初始大小为16,增长时,直接容量翻番,如源代码。
void addEntry(int hash, K key, V value, int bucketIndex) { if ((size >= threshold) && (null != table[bucketIndex])) { resize(2 * table.length);//原容量2倍 hash = (null != key) ? hash(key) : 0; bucketIndex = indexFor(hash, table.length); } createEntry(hash, key, value, bucketIndex); }
3、Vector的初始大小为10,如果没有指定每次增长的大小,则默认是翻倍增长。
以上是“ArrayList中自动扩充机制的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流