Liar

曾经沧海难为水 除却巫山不是云

导航

C#中Array和ArrayList的区别及泛型

Posted on 2011-12-27 12:38  Liar  阅读(4608)  评论(0编辑  收藏  举报

1.Array累心的变量在声明的同时必须进行实例化(至少的初始化数组的大小),而ArrayList可以只先声明。

2.Array只能存储同构的对象,ArrayList可以存储异构变量。

/*这里有一个装箱和拆箱的概念,在以后会用到:如  将String,int等隐式转化为Object是装箱.  将Object强制转化为string,int是拆箱.    在向Arraylist添加数据的过程中,对象先被装箱为Object,需要调用时,再拆箱为对应的对象,   但在这个过程中,强制转化加上ArrayList的异构特性,可能导致很多问题,由此提出了泛型的概念*/

3.在CLR托管对中东存放方式.

Array是始终连续存放的,ArrayList不一定是

4.初始化大小

Array对象的初始化必须制定大小,且创建后的数组大小是固定的,而ArrayList的大小可以动态指定.

关于泛型:

ArrayList是一个非泛型集合类,添加到ArrayList中的任何引用或值类型都将隐式向上强制转换为Object.如果项是值类型,则必须在将其添加到列表中是进行装箱操作.

泛型是最常见的用途是创建集合类。.Net Framework类库在Collection.Generic命名空间中包含ijge泛型集合类。List<T>类是ArrayList类的泛型等效类。使用大小可以按需动态增加的苏族实现IList泛型接口.动态数组的好处是不必须事先设置较大的数组,减少不必要的内存开销.