集合,ArrayList的运用、 Add()、AddRange()、Clear()、 IndexOf()等
一、ArrayList类
ArrayList类位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看作扩充了功能的数组,但是它并不等同于数组。
与数组相比,ArrayList类提供以下功能。
1.1 数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充。
1.2 ArrayList提供添加,删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素的值。
1.3 ArrayList提供将只读和固定大小包装返回到集合的方法,而数组不提供。
1.4 ArrayList只能是一维形式,而数组可以是多维的。
声明ArrayList对象:
ArrayList arrayList = new ArrayList();
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);
返回某值在iArrayList中第一次出现的索引(下标),索引从0开始
public virtual void Index(int index,object value);
在ArrayList的指定索引处,插入一个元素
public virtual void insertRange(int index, ICollection c);
在ArrayList的指定索引处,插入某个集合的元素
public virtual void Remove(object obj);
从ArrayList中移除第一次出现的指定对象
public virtual 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中元素的实际个数
代码插入数据 :
显示数据:
Console.WriteLine(al.Add("ss")); //这句是返回下标
返回下标后再显示里面所有数据
如何显示现数组长度:
这时候的数组长度为4;
判断当前元素是否在集合中:
or
判断当前元素在集合中的位置(下标)
这两个是不同的:
al.Contains('c');如果集合中存在‘c’,就会返回true,不存在将会返回false
al.IndexOf(11);如果该集合存在11将会返回它的下标,不存在该元素将会返回-1。
这里不存在11,所以返回-1
如何在指定位置插入数据:
al.Insert(0, 12);
//在下标为0的位置插入‘12’这条数据
执行代码:
如何取单个值:
根据下标取值
输出下标为0的值:
如何删除一个单个的值:
for
但是用for有个弊端,只删除了值,集合长度没变
用remove删除单个 :
remove
用remove删除会改变集合数量
执行:
如何清空集合中全部数据:
clear
执行:
把一个集合合并到另一个集合中:(是从最后一个位置(最大下标)开始)
先实例化两个数组,分别赋上值
再调用AddRange()方法把集合b合并到集合a里去
数据都合并到a集合里去了
执行:
当然,把集合a合并到b集合里也是可以的,是从最后一个位置(最大下标)开始
所以输出结果应该是:
插入:
a.InsertRange(0, b);从a集合里的0下标位开始插入b集合里的数据
执行: