当前位置:首页 > C#学习 > 正文内容

动态数组(ArrayList)

小道6年前 (2018-08-31)C#学习3730

ArrayList是命名空间System.Collections下的一部分,在使用该类时必须进行引用,同时继承了IList接口,提供了数据存储和检索。ArrayList对象的大小是按照其中存储的数据来动态扩充与收缩的。所以,在声明ArrayList对象时并不需要指定它的长度。

动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。

缺点:

因为ArrayList会把所有插入其中的数据当作为object类型来处理,在我们使用ArrayList处理数据时,很可能会报类型不匹配的错误,也就是ArrayList不是类型安全的。在存储或检索值类型时通常发生装箱和取消装箱操作,带来很大的性能耗损。

ArrayList 类的方法和属性

下表列出了 ArrayList 类的一些常用的 属性:


属性描述
Capacity获取或设置 ArrayList 可以包含的元素个数。
Count获取 ArrayList 中实际包含的元素个数。
IsFixedSize获取一个值,表示 ArrayList 是否具有固定大小。
IsReadOnly获取一个值,表示 ArrayList 是否只读。
Item获取或设置指定索引处的元素。


下表列出了 ArrayList 类的一些常用的 方法:



序号方法名 & 描述
1public virtual int Add( object value ); 
       在 ArrayList 的末尾添加一个对象。
2public virtual void AddRange( ICollection c ); 
       在 ArrayList 的末尾添加 ICollection 的元素。
3public virtual void Clear();
       从 ArrayList 中移除所有的元素。
4public virtual bool Contains( object item ); 
       判断某个元素是否在 ArrayList 中。
5public virtual ArrayList GetRange( int index, int count ); 
       返回一个 ArrayList,表示源 ArrayList 中元素的子集。
6public virtual int IndexOf(object);
       返回某个值在 ArrayList 中第一次出现的索引,索引从零开始。
7public virtual void Insert( int index, object value ); 
       在 ArrayList 的指定索引处,插入一个元素。
8public virtual void InsertRange( int index, ICollection c ); 
       在 ArrayList 的指定索引处,插入某个集合的元素。
9public virtual void Remove( object obj ); 
       从 ArrayList 中移除第一次出现的指定对象。
10public virtual void RemoveAt( int index ); 
       移除 ArrayList 的指定索引处的元素。
11public virtual void RemoveRange( int index, int count ); 
       从 ArrayList 中移除某个范围的元素。
12public virtual void Reverse();
       逆转 ArrayList 中元素的顺序。
13public virtual void SetRange( int index, ICollection c ); 
       复制某个集合的元素到 ArrayList 中某个范围的元素上。
14public virtual void Sort();
       对 ArrayList 中的元素进行排序。
15public virtual void TrimToSize();
       设置容量为 ArrayList 中元素的实际个数。

创建一个动态数组:


        static void Main(string[] args)
        {
            ArrayList al = new ArrayList();//创建一个动态数组
            al.Add(111);//可以添加整型
            al.Add("abc");//可以添加字符串
            al.Add(2113);//可以添加整型
            al.Add(455.55);//可以添加小数点
            al.Add(-10);//可以添加负数
            al.Add("123");//可以添加字符串
            al.Add(888);//可以添加整型
            al.Remove(2113);//删除整型
            Console.WriteLine(al.Contains("123"));//查找动态数组中是否包含“123”字符串。
            foreach (var i in al)//遍历动态数组。var可变的类型
            {
                Console.WriteLine(i);//输出
            }
            Console.ReadKey();
        }

输出结果:


image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://www.daobk.com/post/96.html

分享给朋友:

“动态数组(ArrayList)” 的相关文章

数组:​从一个整数数组中取出最大的整数。

数组:​从一个整数数组中取出最大的整数。

保存多个值。任意类型都可以声明数组。int[] nums = {5,3,8};//数组可以直接赋值。 int[] nums = new int[3];//也可以先声明数组 不赋值。   &...

函数的ref、out参数

函数的ref、out参数

函数参数默认是值传递的,也就是“复制一份”ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而out则是内部为外部赋值,所以不需要初始化,而且外部初始化也没用。ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所。  ...

异常与异常处理

异常与异常处理

传统的错误表示方式:错误码。举例。需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预置的错误。陈摄影师以为文件已经被删除造成的麻烦。错误码的缺点:不处理则很难发现,每次处理则很麻烦;难以看出错误的原因;容易使得程序进入不确定状态。try catch。Exception ex 异常也是...

第一个Windows程序

第一个Windows程序

WinForm:Windows Form,.Net中用来开发Windows窗口程序的技术,无论是之前学的控制台程序,还是后面要学的ASP.Net都是调用.Net框架,因此所有知识点都是一样的。新建一个Windows项目:Windows→Windows窗体应用程序控件:窗口上很多元素都是相似的,因此将...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。