Array 和 ArrayList 的区别

来源:互联网 发布:新浪集团网络运营 编辑:程序博客网 时间:2024/05/22 16:38
两者间的区别:
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 等键值对的集合











0 0
原创粉丝点击