ArrayList类(动态数组)
ArrayList类位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看做扩充了功能的数组,但它并不等同于数组。
(1)使用默认构造器
ArrayList List = new ArrayList();
for (int i = 0; i < 10; i++) //给ArrayList对象添加10个int元素
List.Add(i);
(2)用一个ICollection对象来构造
ArrayList List = new ArrayList(arryName);
(3)用指定的大小初始化内部的数组
ArrayList List = new ArrayList(n);
================================================
1.ArrayList元素的添加
1.Add方法
该方法用来将对象添加到ArrayList集合的结尾处,其语法格式如下。
public virtual int Add (Object value)
其中:value表示要添加到ArrayList的末尾处的Object,该值可以为空引用。返回值为ArrayList索引,已在此处添加了value。
2.Insert方法
该方法用来将元素插入ArrayList集合的指定索引处,其语法格式如下。
public virtual void Insert (int index,Object value)
其中:index表示从零开始的索引,应在该位置插入value。Value表示要插入的Object,该值可以为空引用。
int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };
ArrayList List = new ArrayList(arr); //使用声明的一维数组实例化一个ArrayList对象
Console.WriteLine("原ArrayList集合:");
foreach (int i in List) //遍历ArrayList集合并输出
{
Console.Write(i + " ");
}
Console.WriteLine(); //到下一行
for (int i = 1; i < 5; i++)
{
List.Add(i + arr.Length); //为ArrayList集合添加元素
}
Console.WriteLine("使用Add方法添加:");
foreach (int i in List) //遍历添加元素后的ArrayList集合并输出
{
Console.Write(i + " ");
}
Console.WriteLine();
List.Insert(6, 6); //在ArrayList集合的指定位置添加元素
Console.WriteLine("使用Insert方法添加:");
foreach (int i in List) //遍历最后的ArrayList集合并输出
{
Console.Write(i + " ");
}
Console.WriteLine();
============================================================================================ 2. ArrayList元素的删除
1.Clear方法
该方法用来从ArrayList中移除所有元素,其语法格式如下。
public virtual void Clear ()
2.Remove方法
该方法用来从ArrayList中移除特定对象的第一个匹配项,其语法格式如下。
public virtual void Remove (Objectobj)
其中obj表示要从ArrayList移除的Object,该值可以为空引用。
3.RemoveAt方法
该方法用来移除ArrayList的指定索引处的元素,其语法格式如下。
public virtual voidRemoveAt (int index)
index:要移除的元素的从零开始的索引。
4.RemoveRange方法
该方法用来从ArrayList中移除一定范围的元素,其语法格式如下。
public virtual voidRemoveRange (intindex,int count)
index:要移除的元素的范围从零开始的起始索引。
count:要移除的元素数。
int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
ArrayList List = new ArrayList(arr); //使用声明的一维数组实例化一个ArrayList对象
Console.WriteLine("原ArrayList集合:");
foreach (int i in List) //遍历ArrayList集合中的元素并输出
{
Console.Write(i.ToString() + " ");
}
Console.WriteLine();
List.RemoveRange(0, 5); //从ArrayList集合中移除指定下标位置的元素
Console.WriteLine("删除元素后的ArrayList集合:");
foreach (int i in List) //遍历删除元素后的ArrayList集合并输出其元素
{
Console.Write(i + " ");
}
Console.WriteLine();
Console.ReadLine();
======================================================================================================
3.ArrayList的遍历
ArrayList集合的遍历与数组类似,都可以使用foreach语句,下面通过一个实例说明如何遍历ArrayList集合中的元素。
ArrayList list = new ArrayList(); //实例化一个ArrayList对象
list.Add("TM"); //向ArrayList集合中添加元素
list.Add("C# 3.5 从入门到应用开发");
foreach (string a in list) //遍历ArrayList集合中的元素并输出
{
Console.WriteLine(a);
}
======================================================================================================
4.ArrayList元素的查找
查找ArrayList集合中的元素时,可以使用ArrayList类提供的Contains方法、IndexOf方法和LastIndexOf方法。IndexOf方法和LastIndexOf方法的用法与string字符串类的同名方法的用法基本相。
Contains方法用来确定某元素是否在ArrayList集合中,其语法格式如下。
public virtualbool Contains (Object item)
item:要在ArrayList中查找的Object,该值可以为空引用。
返回值:如果在ArrayList中找到item,则为true;否则为false。
int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };
ArrayList List = new ArrayList(arr);
Console.Write(List.Contains(2));
======================================================================================================