ArrayList的自动扩充机制
来源:互联网 发布:中国网络购物交易规模 编辑:程序博客网 时间:2024/06/06 06:40
用一道选择题作为本文的开始吧!
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,如果没有指定每次增长的大小,则默认是翻倍增长。
阅读全文
0 0
- ArrayList的自动扩充机制
- ArrayList的自动扩充机制
- Java ArrayList的自动扩容机制
- ArrayList的初始值 和 扩充问题
- 自动扩充尺寸的ListView
- ArrayList、vector、LinkedList的区别及 内部容器的扩充
- ArrayList的扩容机制
- ArrayList的扩容机制
- ArrayList的扩容机制
- StringBuffer、ArrayList、HashMap的初始容量、已经如何扩充的总结(适用范围:JDK1.7)
- 不同JDK版本ArrayList 容量扩充问题
- ArrayList list = new ArrayList(20);中的list扩充几次
- ArrayList和Vector的扩容机制
- java-----ArrayList的fail-fast机制学习
- ArrayList和Vector的扩容机制
- ArrayList和Vector的扩容机制
- ArrayList和Vector的扩容机制
- 关于ArrayList和Vector的自动增长
- 生成字典序的全排列
- log4j的几个常用的logger名称(持续更新)
- 微信小程序开发教程之新手“出坑”系列
- 几种简单的排序算法
- jsp相关知识点梳理
- ArrayList的自动扩充机制
- MySQL事务隔离级别详解
- iOS使用WebViewJavascriptBridge实现OC与JS交互
- kibana 相关安装
- protostuff序列化工具的使用
- Android 获取文件/文件夹/转换文件的大小
- SSM框架spring Aop详解 No.3
- NodeJs判断字符串是否为空
- 2017.8.24