ArrayList初识
今天在开发GIS程序时,用到ArrayList类,但是不太清楚它是怎么使用的。于是就查找了些资料,查探了下它的使用方法。接下来,我就把我整理出来的结果分享给大家,方便大家的学习和交流。
ArrayList类位于System.Collection命名空间下,他可以动态的添加和删除元素。与数组相比,ArrayList具有如下特点:
1.数据的容量是有限的,但是ArrayList的容量可以根据需要自动扩充,免除了程序员很大的麻烦。
2.ArrayList提供添加、删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素的值。
3.ArrarList提供将只读和固定大小包装返回到集合的方法,而数组不提供。
4.ArrayList只能是一维形式,而数组可以是多维的。
接下来,我来说明一下ArrayList的构造函数,理解ArrayList的定义方式。ArrayList提供了3个构造函数,下面分别介绍:
1.默认的构造函数,是以16的大小来初始化内部的数组。构造函数格式如下:
public ArrayList();
例如:ArrayList list=new ArrayList(); 其中list是对ArrayList类的一个引用。
ArrayList list=new ArrayList();
for(int i=0;i<10;i++)
list.add(i); //给ArrayList对象list添加10个int类型的元素
2.用一个ICollection对象来构造,并将该集合的元素添加到ArrayList中。构造函数格式如下:
public ArrayList(ICollection);
例如:ArrayList list=new ArrayList(arrName);其中list是ArrayList对象名,arrName是要添加到集合中的数据名。
int arrName=new int[]{1,2,3,4,5,6,7,8,9};
ArrayList list=new ArrayList(arrName);//将声明的一维数组添加到ArrayList集合中
3.用指定大小初始化内部的数组。构造函数格式如下:
public ArrayList(int);
例如:ArrayList list=new ArrayList(n);其中list是ArrayList对象名,n是ArrayList对象的空间大小
ArrayList list=new ArrayList(10);
for(int i=0;i<10;i++)
list.add(i);//给ArrayList对象添加10个int类型的元素
下面我简单介绍一下ArrayList集合类的一些常用属性及说明:
属性 |
说明 |
Capacity |
获取或设置ArrayList可包含的元素个数 |
Count |
获取ArrayList中实际包含的元素数 |
IsFixedSize |
获取一个值,该值指示ArrayList是否具有固定大小 |
IsReadOnly |
获取一个值,该值指示ArrayList是否为只读 |
IsSynchronized |
获取一个值,该值指示是否同步对ArrayList的访问 |
Item |
获取或设置指定索引出得元素 |
SyncRoot |
获取可用于同步ArrayList访问的对象 |
最后我来讲一下ArrayList中的一些常用方法的使用。
1.添加 ArrayList集合元素
向ArrayList中添加元素可以使用Add方法和Insert方法。其语法格式如下:
(1)public virtual int Add(Object value)
(2)public virtual void Insert(int index,Object value)
下面我通过一个控制台程序说明一下这个两个方法的使用。
代码如下:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Collections;
6
7 namespace ArrayListDemo
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 int[] arrName = new int[] { 1,2,3,4,5,6};
14 ArrayList list = new ArrayList(arrName);//使用声明的一维数组实例化一个ArrayList对象
15 Console.WriteLine("原ArrayList集合:");
16 foreach (int i in list)//遍历ArrayList集合并输出
17 {
18 Console.Write(i+" ");
19 }
20 Console.WriteLine();
21 for (int i = 1; i < 5; i++)
22 {
23 list.Add(i+arrName.Length);//为ArrayList集合添加元素
24 }
25 Console.WriteLine("使用Add方法添加:");
26 foreach (int i in list)//遍历添加元素后的ArrayList集合并输出
27 {
28 Console.Write(i+" ");
29 }
30 Console.WriteLine();
31 list.Insert(6, 6);//在ArrayList集合指定位置处添加元素
32 Console.WriteLine("使用Insert方法添加:");
33 foreach (int i in list)//遍历最后的ArrayList集合并输出
34 {
35 Console.Write(i+" ");
36 }
37 Console.ReadLine();
38 }
39 }
40 }
运行结果如下: