内容摘要 -
全文 -
C# 2.0实用开发 - ArrayList数组集合类
第8章介绍了Array类,ArrayList类可以视作是Array与Collection对象的结合。该类既有数组的特征又有集合的特性,例如,既可以通过下标进行元素访问,对元素排序、搜索,又可以像处理集合一样添加、在指定索引插入及删除元素。
由于ArrayList中元素的类型默认为object类型,因此,在获取集合元素时需要进行强制类型转换。并且object是引用类型,在与值类型进行转换时,会引起装箱和拆箱的操作,需要付出一些性能代价。
9.2.1 创建列表
为了创建ArrayList,可以使用三种重载构造函数中的一种,还可以使用ArrayList的静态方法Repeat创建一个新的ArrayList。这三个构造函数的声明如下。
//使用默认的初始容量创建ArrayList,该实例并没有任何元素
public ArrayList();
//使用实现了ICollection接口的集合类来初始化新创建的ArrayList
public ArrayList(ICollection c);
//经由指定一个整数值来初始化ArrayList的容量
public ArrayList(int capacity);
下面的例子代码演示了使用4种创建ArrayList的方法。
static void Main(string[] args)
{
//使用默认的初始容量创建ArrayList,该实例并没有任何元素
ArrayList al1 = new ArrayList();
al1.Add("111");
al1.Add("222");
al1.Add("333");
DisplayResult(al1);
//使用实现了ICollection接口的集合类来初始化新创建的ArrayList,该实例与参数中的集合具有相同的初始容量
ArrayList al2 = new ArrayList(al1);
//调用显示结果子程序
DisplayResult(al2);
//经由指定一个整数值来初始化ArrayList的容量
ArrayList al3 = new ArrayList(20);
DisplayResult(al3);
//将指定ccc字符串重复4次构造数组
ArrayList al4=ArrayList.Repeat("ccc", 4);
DisplayResult(al4);
Console.ReadLine();
}
//在控制台窗口显示数组的内容
static void DisplayResult(ArrayList ls)
{
Console.WriteLine("");
if (ls.Count <= 0)
{
Console.WriteLine("数组没有任何集合元素");
}
foreach (object s in ls)
{
Console.Write(Convert.ToString(s));
}
}
注意:为了实现上面的例子,必须在using区添加System.Collections命名空间。
图9.1显示了创建的结果。
图9.1 创建ArrayList
9.2.2 添加元素
有两种方法可用于向ArrayList添加元素:Add和AddRange。
— Add方法将单个元素添加到列表的尾部。
— AddRange方法获取一个实现ICollection接口的集合实例,例如Array、Queue、Stack等,并将
|