arraylist——ArrayList的容量
来源:互联网 发布:u盘数据剪切如何恢复 编辑:程序博客网 时间:2024/06/04 19:54
ArrayList.size()//方法返回的是一个int,所以它最多能放Integer.MAX_VALUE((2^31)-1)个元素。
转自http://blog.csdn.net/arui319/article/details/3557743
List接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。
ArrayList继承于List接口,除继承过来的方法外,还提供一些方法来操作内部用来存储列表的数组的大小。
每个ArrayList实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量也自动增长。并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。
ArrayList是经常会被用到的,一般情况下,使用的时候会像这样进行声明:
List arrayList = new ArrayList();
如果像上面这样使用默认的构造方法,初始容量被设置为10。当ArrayList中的元素超过10个以后,会重新分配内存空间,使数组的大小增长到16。
可以通过调试看到动态增长的数量变化:10->16->25->38->58->88->...
也可以使用下面的方式进行声明:
List arrayList = new ArrayList(4);
将ArrayList的默认容量设置为4。当ArrayList中的元素超过4个以后,会重新分配内存空间,使数组的大小增长到7。
可以通过调试看到动态增长的数量变化:4->7->11->17->26->...
那么容量变化的规则是什么呢?请看下面的公式:
((旧容量 * 3) / 2) + 1
注:这点与C#语言是不同的,C#当中的算法很简单,是翻倍。
一旦容量发生变化,就要带来额外的内存开销,和时间上的开销。
所以,在已经知道容量大小的情况下,推荐使用下面方式进行声明:
List arrayList = new ArrayList(CAPACITY_SIZE);
即指定默认容量大小的方式。
- arraylist——ArrayList的容量
- 减少ArrayList的容量
- Java中的ArrayList的容量
- Java中的ArrayList的容量
- ArrayList的初始容量和容量分配
- ArrayList的初始容量的问题
- ArrayList的默认初始容量及扩容
- ArrayList的默认初始容量及扩容
- JAVA -- arraylist 容量
- ArrayList ensureCapacity 容量
- ArrayList集合容量增长
- Java中的ArrayList的初始容量和容量分配
- Java中的ArrayList的初始容量和容量分配
- Java中的ArrayList的初始容量和容量分配
- Java中的ArrayList的初始容量和容量分配
- Java中的ArrayList的初始容量和容量分配
- Java中的ArrayList的初始容量和容量分配
- ArrayList——数组与ArrayList的关系与区别
- java servlet处理后返回jason
- NFC读取卡号转换程RFID设备IC读卡器读取的卡号
- 使用.htaccess修改php.ini的配置
- C++/C中内存分配情况详解
- Git与GitHub的使用详解
- arraylist——ArrayList的容量
- C基础点总结
- LeetCode #99: Recover Binary Search Tree
- 在PHP中使用计划任务
- 1018. 锤子剪刀布 (20)
- shell脚本 制定文件的批量复制
- 使用MessageDigest来实现MD5
- mac eclipse配置环境
- yocto 一些细节