C# ArrayList集合
集合
可以向数组那样存储多个数据,但是长度不固定。往其中存多少个都可以。
ArrayList:动态数组(不是一个数组,是具有数组的功能再克服了数组的缺点)
ArrayList所在的命名空间:System.Collections
它是1个类,所以我们要使用的话,就必须要创建1个对象。
元素的类型:object 就算看起来存储满了,其实它还会自动增长。
ArrayList的用法
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 //引入 ArrayList 所在的命名空间 6 using System.Collections; 7 8 namespace Test 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 //创建 ArrayList 数组 15 ArrayList array = new ArrayList(); 16 17 //用Add 方法往 ArrayList 添加数据 18 array.Add("ABC"); 19 array.Add(123); 20 //用Insert 方法,传入下标和值的方式添加数据 21 array.Insert(2, "新插入的值"); 22 23 //修改 ArrayList 里的数据 24 array[1] = 456; 25 26 //用 RemoveAt 方法根据下标移除 ArrayList 里的数据 27 array.RemoveAt(0); 28 //用 RemoveAt 方法删除数据,会删除集合中第一个和传入的数据相等的元素。 29 array.Remove("ABC"); 30 31 //遍历 ArrayList里面的数据 32 foreach (var item in array) 33 { 34 Console.WriteLine(item); 35 } 36 37 } 38 } 39 }
ArrayList存储数据的原理
真正存储数据的是1个object类型的数组。object[] _items
在静态构造函数中创建了1个0个长度的object数组。在实例构造函数中将0个长度的数组赋值给了_items字段。
所以 在创建完ArrayList对象以后,这个集合对象中的_items数组有0个长度。
当我们第一次往其中存储数据的时候,会创建1个4个长度的数组被items字段指向。将值存储到该数组中。
集合中存储数据的是1个object数组。所以ArrayList中可以存储任意类型的数据。会将其加到ArrayList集合中。
Add()方法 将数据存储到集合中,返回数据的下标。参数是1个object类型。所以我们可以给任意的1个数据。
AddRange() 需要传入1个ICollection对象。数组和ArrayList集合就是他的子类。可以传入一个数组,也可以传入一个ArrayList集合,如果是这样,它会将数组/集合中的每一个元素,加到集合对象中去。
ArrayList集合的其他用法
Remove()方法 传入一个数据 会删除集合中第一个和传入的数据相等的元素。
RemoveAt()方法 传入下标,删除指定下标的元素。
RemoveRange() 从指定的下标开始删除指定个数的元素。每删除一个元素的时候,这个元素的后面的元素的下标会发生改变。并且Count属性的值也会减小。
Clear() 方法 清空集合中的所有数据
Count()属性可以得到集合中真实有效的元素的个数
Contains ()方法 判断集合中是否包含指定的元素
GetRange() 从1个大集合中得到一个小集合
IndexOf() 查找指定的元素在集合中第一次出现的下标,如果没有返回-1.
Insert() 在指定的下标插入元素
Reverse() 翻转集合中的元素
Sort() 升序排序集合中的元素。只适合于元素是数组类型的。
ToArray() 将集合转换成为1个数组
TrimToSize() 将集合中存储数据的数组的多余的元素删除。