关于ArrayList对象的容量Capacity
2007-01-23 20:38
351 查看
ArrayList是一个长度可变的数组,那么它的容量是怎么变化的呢?先看下面一段程序:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace AboutArrayList
al.Capacity = 0
i = 0
al.Capacity = 4
i = 4
al.Capacity = 8
i = 8
al.Capacity = 16
i = 16
al.Capacity = 32
i = 32
al.Capacity = 64
i = 64
al.Capacity = 128
i = 128
al.Capacity = 256
可以发现ArrayList的容量是成倍增长的。也就是说如果给ArrayList添加一项,但其内部数组已经没有空间了,ArrayList就会把内部数组的大小加倍倍,给新项腾出空间。
顺便记录一下重新设置数组大小的方法:
一、VB.NET代码
Dim intArray As New int(1,2,3);
ReDim int intArray(5);
二、C#代码
int [] intArray2 = new int[6];
Array.Copy(intArray,intArray2,intArray.Length);
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace AboutArrayList
al.Capacity = 0
i = 0
al.Capacity = 4
i = 4
al.Capacity = 8
i = 8
al.Capacity = 16
i = 16
al.Capacity = 32
i = 32
al.Capacity = 64
i = 64
al.Capacity = 128
i = 128
al.Capacity = 256
可以发现ArrayList的容量是成倍增长的。也就是说如果给ArrayList添加一项,但其内部数组已经没有空间了,ArrayList就会把内部数组的大小加倍倍,给新项腾出空间。
顺便记录一下重新设置数组大小的方法:
一、VB.NET代码
Dim intArray As New int(1,2,3);
ReDim int intArray(5);
二、C#代码
int [] intArray2 = new int[6];
Array.Copy(intArray,intArray2,intArray.Length);
相关文章推荐
- 关于List,ArrayList中remove(object obj)方法不能删除对象问题
- 关于Arraylist的增量:ensureCapacity()
- 关于ArrayList与数组对象的直接输出
- 关于StringBuffer对象的capacity方法返回值
- 关于ArrayList的初始容量以及扩容的效率问题
- 关于ArrayList 容量问题
- 关于向arrayList集合插入对象报空指针异常
- 关于ArrayList中对象按照属性进行分类(属性相同的对象放入新的arrayList里面)
- 【Java源码分析】为什么不可以在指定默认容量的ArrayList对象中插入元素
- 关于C#中数组、ArrayList与List三个对象的使用区别
- 关于ArrayList的初始容量以及扩容的效率问题
- 关于vector大小(size)和容量(capacity)总结
- 关于Arraylist的增量:ensureCapacity()
- 关于如何从数据库取得对象放在ArrayList中
- 关于ArrayList的初始容量以及扩容的效率问题
- 关于直接打印一个对象的引用
- ArrayList 的 contains()隐式调用了 对象的equals()
- 关于.net的垃圾回收和大对象处理_标记
- 关于Fragment.onCreate()中引用Activity.onCreate()创建的对象时的一个异常