### ArrayList 类详解 #### 概述 `System.Collections.ArrayList` 是 .NET Framework 中的一个非常重要的非泛型集合类,它提供了动态数组的功能。与普通的数组相比,`ArrayList` 最大的特点是能够动态地调整其大小,这使得在不知道确切元素数量的情况下也能方便地使用。 根据给定的文件内容,我们可以总结出以下关于 `ArrayList` 的关键知识点: 1. **数组的动态扩展**:`ArrayList` 类可以动态增加或减少其中的元素,从而改变自身的容量。 2. **元素的添加、插入与删除**:`ArrayList` 支持在列表中添加、插入新元素以及删除现有元素。 3. **其他操作**:如排序、反转、查找元素等操作也得到了支持。 #### 详细知识点 ##### 添加元素 - **方法签名**:`public virtual int Add(object value);` - **功能描述**:向 `ArrayList` 的末尾添加一个新元素,并返回该元素在 `ArrayList` 中的位置索引(即元素的索引)。 - **示例代码**: ```csharp ArrayList aList = new ArrayList(); aList.Add("a"); aList.Add("b"); aList.Add("c"); aList.Add("d"); aList.Add("e"); // 结果为: ["a", "b", "c", "d", "e"] ``` ##### 插入元素 - **方法签名**: - `public virtual void Insert(int index, object value);` - `public virtual void InsertRange(int index, ICollection c);` - **功能描述**: - `Insert`: 在指定索引位置前插入一个新元素。 - `InsertRange`: 在指定索引位置前插入一系列元素。 - **示例代码**: ```csharp ArrayList aList = new ArrayList(); aList.Add("a"); aList.Add("b"); aList.Add("c"); aList.Add("d"); aList.Add("e"); aList.Insert(0, "aa"); // 结果为: ["aa", "a", "b", "c", "d", "e"] ArrayList list2 = new ArrayList(); list2.Add("tt"); list2.Add("ttt"); aList.InsertRange(2, list2); // 结果为: ["aa", "a", "tt", "ttt", "b", "c", "d", "e"] ``` ##### 删除元素 - **方法签名**: - `public virtual void Remove(object obj);` - `public virtual void RemoveAt(int index);` - `public virtual void RemoveRange(int index, int count);` - **功能描述**: - `Remove`: 移除 `ArrayList` 中第一次出现的指定对象。 - `RemoveAt`: 移除 `ArrayList` 中位于指定索引位置的元素。 - `RemoveRange`: 移除 `ArrayList` 中从指定索引开始的指定数量的元素。 - **示例代码**: ```csharp ArrayList aList = new ArrayList(); aList.Add("a"); aList.Add("b"); aList.Add("c"); aList.Add("d"); aList.Add("e"); aList.Remove("a"); // 结果为: ["b", "c", "d", "e"] aList.RemoveAt(0); // 结果为: ["c", "d", "e"] aList.RemoveRange(1, 2); // 结果为: ["c", "e"] ``` ##### 其他操作 - **方法签名**: - `public virtual void Clear();` - `public virtual void Sort();` - `public virtual void Reverse();` - `public virtual int IndexOf(object obj);` - **功能描述**: - `Clear`: 清空整个 `ArrayList` 中的所有元素。 - `Sort`: 将 `ArrayList` 中的元素按默认的升序排序。 - `Reverse`: 将 `ArrayList` 中的元素顺序反转。 - `IndexOf`: 返回指定对象在 `ArrayList` 中首次出现的位置。 - **示例代码**: ```csharp ArrayList aList = new ArrayList(); aList.Add("e"); aList.Add("a"); aList.Add("b"); aList.Add("c"); aList.Add("d"); aList.Sort(); // 结果为: ["a", "b", "c", "d", "e"] aList.Reverse(); // 结果为: ["e", "d", "c", "b", "a"] int index = aList.IndexOf("c"); // index 的值为: 2 ``` `System.Collections.ArrayList` 提供了丰富的操作来管理动态数组,包括但不限于元素的添加、插入、删除以及排序、反转等功能。这些特性使得 `ArrayList` 成为了处理动态数据结构时的常用工具。
一、优点
1. 支持自动改变大小的功能
2. 可以灵活的插入元素
3. 可以灵活的删除元素
4. 可以灵活访问元素
二、局限性
跟一般的数组比起来,速度上差些
三、添加元素
1.public virtual int Add(object value);
将对象添加到ArrayList的结尾处
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("e");
内容为abcde
2.public virtual void Insert(int index,object value);
将元素插入ArrayList的指定索引处
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Insert(0,"aa");
结果为aaabcde
3.public virtual void InsertRange(int index,ICollectionc);
将集合中的某个元素插入ArrayList的指定索引处
剩余10页未读,继续阅读
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助