认识 C# 的 ArrayList

简介: C# 不支持动态数组,用 ArrayList 可以实现动态数组的功能。 ArrayList 的名称空间是 System.Collections。 ArrayList 元素类型 和数组不同,ArrayList 的各个元素的类型可以不同。

C# 不支持动态数组,用 ArrayList 可以实现动态数组的功能。


ArrayList 的名称空间是 System.Collections。

ArrayList 元素类型

和数组不同,ArrayList 的各个元素的类型可以不同。

声明对象

//声明 ArrayList 有三种重载方法,较常用的有两种
ArrayList al = new ArrayList();
ArrayList al = new ArrayList(3);

上例中,参数值 3 表示容量,即可以容纳多少个元素。

Capacity 与 Count

ArrayList 具有 Capacity 和 Count 属性,分别表示容量和数量。

  • Capacity 表示 ArrayList 可包含的元素数;Count 表示实际包含的元素数。
  • Capacity 可读可写;Count 只读。

当 Capacity 不够时

我们的 Capacity 如果小了,无法容纳我们实际的元素个数,这时再增加元素时:

如果指定了 Capacity,Capacity 将按指定的 Capacity 的倍数增长(如果 Capacity 小于 2,将按 2 的倍数增长),比如指定了 Capacity 为 3,那么将按 3、6、9、12、15、18 ……线性的方式增长,直到可以容纳实际的元素个数。

如果没有指定 Capacity 值,Capacity 将按 2、4、8、16、32、64 ……指数的方式增长,直到可以容纳实际的元素个数。

Capacity 不会自动缩小

当 Capacity 被自动增大后,即使删除了某些元素,Capacity 也不会自动缩小,需要设置 Capacity 来缩小,注意 Capacity 不能小于当前 Count。

这里介绍一些 ArrayList 常用的代码,都是望名生义,不再举例。

获取元素值

object value = al[index]; //al 为 ArrayList 对象,一般需要再对 value 进行类型转换,比如:int n = (int)value;

设置元素值

al[index] = value; //al 为 ArrayList 对象,index 必须小于 Count

追加元素

int ArrayList.Add(object value) 返回添加的元素的索引

插入元素

void ArrayList.Insert(int index, object value)

删除元素

删除元素后,后面的元素会前移,但 Capacity 不会变化。

void ArrayList.Remove(object obj) 从前(索引 0)往后查找,删除找到的第一个和 obj 相同的元素
void ArrayList.RemoveAt(int index) 删除索引 index 对应的元素
void ArrayList.RemoveRange(int index, int count) 从索引 index 开始,删除 count 个元素

查找元素

int ArrayList.IndexOf(object value) 从前(索引 0)往后查找,返回找到的第一个和 obj 相同的元素的索引
int ArrayList.IndexOf(object value, int startIndex)
int ArrayList.IndexOf(object value, int startIndex, int count)
int ArrayList.LastIndexOf(object value) 从后往前(索引 0)查找,返回找到的第一个和 obj 相同的元素的索引
int ArrayList.LastIndexOf(object value, int startIndex)
int ArrayList.LastIndexOf(object value, int startIndex, int count)

相关亩?/STRONG>

 

 

相关文章
|
7月前
|
存储 安全 Java
32.C#:ArrayList集合
32.C#:ArrayList集合
43 1
C# 集合(ArrayList)的方法和使用
C# 集合(ArrayList)的方法和使用
C#List与ArrayList,Hashtable与Dictionary总结
C#List与ArrayList,Hashtable与Dictionary总结
56 0
C#List与ArrayList,Hashtable与Dictionary总结
|
安全 C# 索引
C# 泛型集合和非泛型集合(List ArrayLIst)
C# 泛型集合和非泛型集合(List ArrayLIst)
116 0
|
存储 安全 C#
C#里面的不同集合(数组、ArrayList集合、List泛型)
在内存中连续存储,因此可以快速而容易地从头到尾遍历元素,可以快速地修改元素
|
C# 索引
C#编程-36:数组与ArrayList基础复习
C#编程-36:数组与ArrayList基础复习
121 0
|
C# 索引
C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)
1.ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理。在ArrayList中主要使用Add、Remove、RemoveAt、Insert四个方法对栈进行操作。Add方法用于将对象添加到 ArrayList 的结尾处;Remove方法用于从 ArrayList 中移除特定对象的第一个匹配项;RemoveAt方法用于移除 ArrayList 的指定索引处的元素;Insert方法用于将元素插入 ArrayList 的指定索引处。
977 0