ArrayList 类是一个特殊的数组。它来自于 System.Collections 命名空间;通过添加和删除元素,就可以动态改变数组的长度。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

一、优点

1 )支持自动改变大小的功能
2
)可以灵活的插入元素
3
)可以灵活的删除元素

二、局限性

因为它是动态数组,初始化大小容量 4 ,当数据存满时扩容是以当前数组容量大小的 2 倍扩容,之后再把数组元素一个一个的存入,数组在扩容时浪费一定的内存空间,和存储时间,而且,元素添加是一个装箱的过程,所以说,跟一般的数组比起来,速度上差些。

                         三、ArrayList初始化 ArrayList有三种初始化

                  1 )不初始化起容量   ArrayList al = new ArrayList() ;// 默认容量为 0 ,当数组容量满时数组会自动一当前数组容量的 2 倍扩容

                    2) 初始化容量 ArrayList al = new ArrayList(3);// 初始容量为 3

                                               3 )以一个集合或数组初始化 ArrayList al = new ArrayList(a);//a 为集合或数组

四、添加元素

添加元素用其自带的方法 Add(object value);

ArrayList al = new ArrayList();

al.Add("a");

                           al.Add('B');

                          al.Add(1);

                          al.Add(15);

                           al.Add(5);

                        输出为: a B 1 15 5

Insert(int index,object value) 方法也可以用来将元素插入到索引处,不过其有一定的限制性 , 必须在数组长度以内插入数组

InsertRange(int index,ICollection c) 方法同 Insert() 一样

五、删除元素

al.Remove(object obj);// 移除数组中的 obj 元素

                        al.RemoveAt(int index);// 移除索引为 index 的数字元素

                        al.RemoveRange(int indext,int count);// 移除从索引 index 开始,移除 count 个元素

六、查找元素

查找元素有 Contains ()、 IndexOf ()、 LastIndexOf () 3 中方法

al.Contains(object obj);// 查找数组中是否有 obj 元素,存在返回 true

IndexOf ()有两个重载方法 起用法如下:

1 )、 al.IndexOf(object obj);// 0 开始查找 obj 元素,只第一个 obj 元素,并返回起在数组中的位置 , 如果不存在,返回 -1

2 )、 al.IndexOf(object obj int startIndex); // startIndex 开始查找 obj 元素,只第一个 obj 元素,并返回起在数组中的位置,

3 )、 al.IndexOf(object obj int startIndex int count); startIndex 开始想后查找 count 个元素,如果存在 obj 元素,则返回其在数组中的位置

                           al.LastIndexOf() 方法与 IndexOf ()用法相同,它也有两个重载,其不同的是, LastIndexOf obj )是查找要 obj 最后出现的位置

 

 

7 ArrayList 的遍历

1 Count 属性可以获取 ArrayList 数组的长度,可以用 for 遍历数组

                               for (int i = 0; i < al.Count;i++ )

                              {

                                           Console.Write("{0}\t",al[i]);

                              }

2 、用 foreach 遍历

foreach (object o in al)

                          {

                                  Console.Write("{0}\t", o);

                            }