Array 和 ArrayList 的区别

Array 和 ArrayList 的区别

2014年09月29日 11:44:19

阅读数:288

两者间的区别:

Array 的容量是固定的,ArrayList 的容量是根据需求自动扩展

ArrayList 提供了 添加、插入或移除 某一范围元素的方法

而 Array 中,只能一次获取或设置一个元素值

 

用Synchronized方法可以很容易地创建ArrayList的同步版本

而 Array 将一直保持它知道用户实现同步为止

 

array 数组的用法

    type [] name = new type [size];

注意:size不能省略,type前后要一致

缺点:在数据间插入数据是

 

ArrayList 动态数组的用法

    是 Array 的复杂版本

    动态的增加和减少元素,实现 ICollection 和 IList 接口灵活的设置数组大小

 
  1. ArrayList name = new ArrayList();

  2. for( int i = 0; i<3; i++ ){

  3. name.Add(i);

  4. Response.Write( name[i].ToString()+"<br>" );

  5. }

  6. Response.Write(name.Count + "<br>");

  7. foreach(int obj in name){

  8. Response.Write(obj+"<br>");

  9. }

 

两者间的相互转换

 
  1. ArrayList List = new ArrayList();

  2. List Add(1); List Add(2); List Add(3);

  3. Int32[] values = ( int32[] ) List.ToArray ( typeof( Int32 ) );

  4. //Int32[] values = new Int32[List.Count];

  5. //List.CopyTo( values );

 

影响 ArrayList 效率的几个因素

    1,由于Object类型的影响,在添加和修改元素时需要拆箱和装箱,会影响一部分效率

    2,数组扩容也是对ArrayList效率影响较大的一个因素

         当执行Add,AddRange,Insert,InsertRange等添加方法时,都会检查数组容量

         如果不够,它会以当前容量的两倍重构一个数组,将旧的元素Copy到新数组

    3,频繁使用 IndexOf,Contains 等方法也会引起效率的损失

          实际上也是执行简单的循环来寻找元素,建议使用Hashtable 或SotedList 等键值对的集合

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值