首页 > 代码库 > .Net学习 第2季05 C#面向对象 ArrayList

.Net学习 第2季05 C#面向对象 ArrayList

.Net 视频学习第2季 C#面向对象

 

面向对象 ArrayList

数组:类型单一(除非是父类数组,子类对象作元素---注意元素还是被认为是父类对象!),长度固定

int[] a = new int[10];

集合:命名空间System.Collections

ArrayList list = new ArrayList();

往集合里边添加数据

list.Add(1);

对同一个集合,可以往里边添加任意类型的数据。(注意Add()方法的输入参数是object类,是所有类型的基类)

ArrayList没有Length属性,不过有Count属性,本质一样。

int a =list.Count;

从上边可以看出集合至少比数组在两方面有优势,第一是不用考虑元素类型是否一致,第二是不用考虑长度问题。

再次强调一点,Add()放进集合的元素都会被视作object类的对象,而不是元素本身的类的对象!!

(放数据很爽,用数据很苦逼————要数据类型转换)

往集合添加数据(集合类型)的另一个方法:AddRange(),添加的时候就已经知道是集合类型,注意不是整个数组当成一个元素!

 

list.Add(1);
int[] a = new int[]{1,2,3}list.AddRange(a);

 

清空:list.Clear();

清除某一项:list.Remove(X); 删除集合list中第一个X

通过下标清除某一项:list.RemoveAt(int a);

删除一个下标范围内的项:list.RemoveRange(int a, int b); a是删除的第一个项的下标,b是清除范围的长度

集合元素顺序反转:list.Reverse(); 注意,如果集合类型通过AddRange()作为元素放在集合中,集合reverse连这个元素内部的数据都会反转

插入元素:list.Insert(int a, X); 在下标a处插入数据X

插入集合:list.InsertRange(int a, L);

判断是否有某元素:list.Contains(X);  和Add()配合使用往集合添加元素

 

count属性:当前元素个数

capcity属性:可容纳的元素个数

当count大于capcity时,向内存申请多一倍的空间(开辟新空间两倍于原空间,复制数据,销毁原空间)

所以要注意,往空集合添加元素时不要用list.Count作为循环判断,因为刚刚new出来的ArrayList,Count和Capcity都是0。

.Net学习 第2季05 C#面向对象 ArrayList