C# 集合-----动态数组(ArrayList)

二,动态数组

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

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

3,优点
1、支持自动改变大小的功能
2、可以灵活的插入元素
3、可以灵活的删除元素
4,和list的区别(缺点)
在arraylist中,我们可以存放不同类型的数据,可以是整型、字符串等,因为ArrayList会把所有插入其中的数据都当作为object类型来处理。这样,在我们使用ArrayList中的数据来处理问题的时候,很可能会报类型不匹配的错误,也就是说ArrayList不是类型安全的。既使我们保证在插入数据的时候都很小心,都有插入了同一类型的数据,但在使用的时候,我们也需要将它们转化为对应的原类型来处理。这就存在了装箱与拆箱的操作,会带来很大的性能损耗。例子
5,ArrayList类常用的方法

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

返回结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值