两者间的区别:
Array 的容量是固定的,ArrayList 的容量是根据需求自动扩展
ArrayList 提供了 添加、插入或移除 某一范围元素的方法
而 Array 中,只能一次获取或设置一个元素值
用Synchronized方法可以很容易地创建ArrayList的同步版本
而 Array 将一直保持它知道用户实现同步为止
array 数组的用法
type [] name = new type [size];
注意:size不能省略,type前后要一致
缺点:在数据间插入数据是
ArrayList 动态数组的用法
是 Array 的复杂版本
动态的增加和减少元素,实现 ICollection 和 IList 接口灵活的设置数组大小
ArrayList name = new ArrayList();
for( int i = 0; i<3; i++ ){
name.Add(i);
Response.Write( name[i].ToString()+"<br>" );
}
Response.Write(name.Count + "<br>");
foreach(int obj in name){
Response.Write(obj+"<br>");
}
两者间的相互转换
ArrayList List = new ArrayList();
List Add(1); List Add(2); List Add(3);
Int32[] values = ( int32[] ) List.ToArray ( typeof( Int32 ) );
//Int32[] values = new Int32[List.Count];
//List.CopyTo( values );
影响 ArrayList 效率的几个因素
1,由于Object类型的影响,在添加和修改元素时需要拆箱和装箱,会影响一部分效率
2,数组扩容也是对ArrayList效率影响较大的一个因素
当执行Add,AddRange,Insert,InsertRange等添加方法时,都会检查数组容量
如果不够,它会以当前容量的两倍重构一个数组,将旧的元素Copy到新数组
3,频繁使用 IndexOf,Contains 等方法也会引起效率的损失
实际上也是执行简单的循环来寻找元素,建议使用Hashtable 或SotedList 等键值对的集合