C# 数组之ArrayList

一、引言

  一般的Array,底层是数组实现的,对于数据的查找和修改十分高效。但是有2个大的缺点,其一为增删低效,其二为数组长度时固定的,无法动态增加长度。

ArrayList类相当于一种高级的动态数组,是Array类的升级版本。与一般的Array相比,ArrayList主要可以动态增加数组的长度。尽管实现了数据增删,但是由于底层还是数组,效率还是不高。


二、函数

 属性:

名称

说明

Capacity

获取或设置 ArrayList 可包含的元素数。

Count

获取 ArrayList 中实际包含的元素数。

IsFixedSize

获取一个值,该值指示 ArrayList 是否具有固定大小。

IsReadOnly

获取一个值,该值指示 ArrayList 是否为只读。

IsSynchronized

获取一个值,该值指示是否同步对 ArrayList 的访问(线程安全)。

Item[Int32]

获取或设置指定索引处的元素。

SyncRoot

获取可用于同步对 ArrayList 的访问的对象。

方法:

名称

描述

Add(Object)

将对象添加到 ArrayList 的结尾处。

Clear()

从 ArrayList 中移除所有元素。

Clone()

创建 ArrayList 的浅表副本。

Contains(Object)

确定某元素是否在 ArrayList 中。

CopyTo(Array)

从目标数组的开头开始,将整个 ArrayList 复制到兼容的一维 Array

IndexOf(Object)

搜索指定 Object 并返回整个内的第一个匹配项的从零开始索引 ArrayList。

Insert(Int32, Object)

将元素插入 ArrayList 的指定索引处。

Remove(Object)

从 ArrayList 中移除特定对象的第一个匹配项。

RemoveAt(Int32)

移除 ArrayList 的指定索引处的元素。

Reverse()

将整个 ArrayList 中元素的顺序反转。

SetRange(Int32, ICollection)

复制 ArrayList 中一个子集合的元素。

Sort()

对整个 ArrayList 中的元素进行排序。


三、总结

 与数组的比较:

(1)数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充

(2)ArrayList提供添加,删除,插入某一范围元素的方法,但在数组中只能一次获取或设置一个元素值。

(3)ArrayList提供将只读和固定大小包装返回到集合的方法,而数组不提供

(4)ArrayList只是一维形式,而数组可以是多维的

猜你喜欢

转载自www.cnblogs.com/01zxs/p/9438469.html