day13 集合(非泛型)
1.System.Collections.Generic; //泛型
System.Collections; //非泛型
2.集合:
非泛型集合和泛型集合
ArrayList是线性数据结构
3.动态数组
ArrayList al = new ArrayList();
为了解决数组的局限性
1,长度固定
2,数组内元素类型固定
添加元素
装箱操作
int,string--object
拆箱操作
object--int,string
在指定位置插入一个新值
al.Insert(3,1);
排序
al.Sort();
删除某值
al.Remove('1');
删除索引
al.RemoveAt(0);
删除范围
al.RemoveRange(0, 2);
将arr中的元素复制到al集合中,此时复制的时候,
al不会自动扩充容量,所以需要al集合的长度要大于或者等于arr的长度.
int[] arr = { 1, 2, 3, 4 };
al.SetRange(0, arr);
获取一个范围的元素
ArrayList list= al.GetRange(0,4);
返回第一个匹配索引
Console.WriteLine(al.IndexOf(1));
返回最后一个匹配索引
Console.WriteLine(al.LastIndexOf(1));
集合反转
al.Reverse();
清空集合所有元素
al.Clear();
判断某个元素是否在al中
if (al.Contains(1))
{
Console.WriteLine("集合存在1这个数");
}
将al数组中的元素拷贝到object数组当中
object[] a=al.ToArray();
在集合中指定位置插入一个新的ICollection子类
int[] arrs = { 1, 2, 3 };
al.InsertRange(0, arrs);
遍历方式
foreach (var item in al)
{
//迭代变量不能赋值,只能读取
Console.WriteLine(item);
}