ArrayList 类相当于一种高级的动态数组. 是Array类的升级版本。
概述:
ArrayList 位于 System.Collections命名空间下
可以动态的删除和添加元素, 从某种意义上来讲, 他是数组的高级版, 但是并不等同于数组。
与数组相比, ArrayList 类提供了以下几个功能:
? ? 1. 数组的长度是固定的(一旦声明,不可更改, 超出将数组越界); ArrayList 的长度可以根据需要自动扩充。
? ? 2. ArrayList 提供了添加、删除、和插入某范围内元素的方法; 数组中仅能一次获取或设置一个元素的值。
? ? 3. ArrayList 提供将只读和固定大小包装并返回到集合的方法; 数组并未提供。
? ? 4. ArrayList 只能是一维形式; 而数组可以是多维的。
ArrayList 声明方式:
? ? ArrayList 提供了3个构造器, ?所对应的的是3种声明方式:
? ? [1]. 默认的构造器, 以默认的大小(16)来初始化内部的数组
? ? ? ? public ArrayList();
? ? ? ? 声明:
? ? ? ? ArrayList list = new ArrarList();
? ? ? ? 示例: (声明一个ArrayList 对象, 并添加10个int类型的元素)
? ? ? ? ArrayList arrayList = new ArrayList();
? ? ? ? for (int i = 0; i < 10; i++)
? ? ? ? {
? ? ? ? ? ? arrayList.Add(i);
? ? ? ? }
? ? [2]. 用一个ICollection 对象来构造, 并将该集合的元素添加到ArrayList中:
? ? ? ? public ArrayList(ICollection);
? ? ? ? 声明:
? ? ? ? ArrayList arrayList = new ArrayList(arrayName);?//arrayName: 要添加到ArrayList中的数组名
? ? ? ? 示例:(将一维int数组添加到ArrayList集合中)
? ? ? ? int[] array = new int[] {1,2,3,4,5,6,7};
? ? ? ? ArrayList arrayList = new ArrayList(array);
? ? [3]. 用指定的大小初始化内部的数组
? ? ? ? public ArrayList(int);
? ? ? ? 声明:
? ? ? ? ArrayList arrayList = new ArrayList(10);
? ? ? ? 示例:(声明长度为10的ArrayList集合, 并动态添加元素)
? ? ? ? ArrayList arrayList = new ArrayList(10);
? ? ? ? for (int i = 0; i < arrayList.Count; i++)
? ? ? ? {
? ? ? ? ? ??//arrayList.Count:
获取ArrayList对象的长度
? ? ? ? ? ? arrayList.Add(i);
? ? ? ? }
ArrayList 的常用属性:
属性 |
说明 |
Capacity |
获取或者设置ArrayList可以达到的长度 |
Count |
获取ArrayList对象实际的长度 |
IsFixedSize |
bool, 指示ArrayList是否具有固定的大小 |
IsReadOnly |
bool, 指示ArrayList是否为只读 |
IsSynchronized |
bool, 指示是否同步对ArrayList 的访问 |
Item |
获取或者设置指定索引处的元素 |
SyncRoot |
获取可用于同步ArrayList访问的对象 |
ArrayList 元素的添加:
? ?ArrayList中提供了 Add() 和 Insert() 方法向ArrayList集合中添加元素:
? ?[1]. Add(): //或者AddRange()
? ? ? ?Add() 不能规定添加到集合中元素的位置, 一般是在ArrayList集合的结尾处。
? ? ? ?语法:
? ? ? ? arrayList.Add(Object value);
? ? ? ? arrayList.AddRange(array)
? ? ? ??//value: 要添加到 ArrayList 末尾处的Object, 该值可以为空引用, 同样允许重复的值;
? ? [2]. Insert(): //或者Insert
? ? ? ? Insert() 方法用来将元素添加到集合指定位置(以索引表示)
? ? ? ? 语法:
? ? ? ? arrayList.Insert(int index, Object value);
? ? ? ??//index: 从0开始的索引
? ? ? ? //value: 同Add()
? ? ? ? 说明:
? ? ? ? 如果说ArrayList实际存储的元素数量已经等于ArrayList可以存储的元素数, 则会通过自动重新分配内部数组增加ArrayList 的容量(即长度), 并在添加新元素之间将现有的元素复制到新的数组中。
? ? ? ? ? ??
?
ArrayList 与 Array 的相互转换: