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()+"
    " );

  5. }

  6. Response.Write(name.Count + "
    ");

  7. foreach(int obj in name){

  8. Response.Write(obj+"
    ");

  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 等键值对的集合

你可能感兴趣的:(史凯凯博客馆,史凯凯的编程技术博客)