System.Collections.ArrayList类是一个特殊的数组,相当于一种高级的动态数组。通过添加和删除元素,就可以动态改变数组的长度。
一、优点
1. 支持自动改变大小的功能
2. 可以灵活的插入元素
3. 可以灵活的删除元素
4. 可以灵活访问元素
二、构成
ArrayList提供了三个构造器:
2.1 默认的构造器,将会以默认(16)的大小来初始化内部的数组
构造器格式:public ArrayList(); ArrayList对象名
2.2 用一个ICollection对象来构造,并将该集合的元素添加到ArrayList
构造器格式:public ArrayList(ICollection);
语法格式:ArrayList List = new ArrayList(arr); // arr : ArrayList de 对象名称
2.3 用指定的大小来初始化内部的数组
构造器格式:public ArrayList(int);
语法格式:ArrayList List = new ArrayList(n); // n : ArrayList 对象的空间大小
三、添加元素方法:
3.1 Add方法用于添加一个元素到当前列表的末尾
例如:int[] arr = new int [ ] {1.2.3.4};
ArrayList List = new ArrayList(arr);
List.Add(5) ; // 为ArrayList 对象添加元素5.
3.2 AddRange方法用于添加一批元素到当前列表的末尾
3.3 Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动
例如:格式为:public arr void Insert (int index, Objectvalue)
备注:index 表示从零处开始的索引,应在该位置插入。
value 表示要插入的对象名称。
int[] arr = new int [ ] {1.2.3.4};
ArrayList List = new ArrayList(arr);
List.Insert(3,5) ; // 为ArrayList 集合在指定的第3个位置处添加元素5.
3.4 InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动四、删除元素方法:
4.1 Remove方法用于删除一个元素,通过元素本身的引用来删除
例如:int[ ] arr = new int [ ] {1.2.3.4};
ArrayList List = new ArrayList(arr);
List.Remove(3) ; // 移除ArrayList对象中与3匹配的元素
4.2 RemoveAt方法用于删除一个元素,通过索引值来删除
格式:public virtual void RemoveAt ( intindex)
备注:index:要移除的元素的从零开始的索引
4.3 RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除
格式:publicvirtual void RemoveRange (int index, int count )
备注:index表示要移除的元素范围从零开始的起始索引
count表示要移除的元素数
4.4 Clear方法用于清除现有所有的元素
例如 : int[ ] arr = new int [ ] {1.2.3.4};
ArrayList List = new ArrayList(arr);
List.Clear ();
五、ArrayList 的遍历
ArrayList 集合的遍历与数组类似,都可以用Foreach 语句。
5.1第一种遍历 ArrayList 对象的方法
foreach(object str in List)
{
Console.Write(str.To String()+" ");
}
5.2 第二种遍历 ArrayList 对象的方法
IEnumerator ie=al.GetEnumerator();
while(ie.MoveNext())
{
Console.Write(ie.Curret.ToString()+" ");
}
5.3 第三种遍历 ArrayList 对象的方法
利用 ArrayList对象的一个属性,它返回一此对象中的元素个数.
然后在利用索引
for(int i=0;i<Count;i++)
{
Console.Write(al[i].ToString()+" ");
}
六、ArrayList 的查找
查找ArrayList 集合中的元素时可以用ArrayList类提供的Contain方法、IndexOf方法、LastIndexOf方法。这里主要介绍Contains方法。
格式:public virtual bool Contains (Object item)
备注:item:要在Array LIst中查找的的对象,该值可以为空引用
返回值:如果找到则为true,否则为False。
七、ArrayList 与数组区别:
7.1数组容量是固定的,而ArrayList 容量是可以自动扩充的;
7.2数组中只能一次获取或设置一个元素的值,而ArrayList 中提供了编辑某一个范围的方法;
7.3数组中不提供只读和固定大小包装返回到集合的方法,而ArrayList 提供;
7.4数组可以是多维的,而 ArrayList 只能是一维形式。