ArrayList集合和和list集合最大的区别在于:使用 ArrayList集合没有确定的类型,因此在执行时需要进行装拆箱,影响效率。所以能使用list集合时尽量使用list集合,提高程序执行效率。
下面会使用一个例子展示 ArrayList集合和和list集合
1、创建泛型集合对象
//创建一个int类型泛型集合的变量
List<int> list = new List<int>();
2、通过ADD向集合中添加数据
//创建泛型集合对象
List<int> list = new List<int>();
向集合中添加数据
list.Add(1);
list.Add(2);
list.Add(3);
3、通过AddRange向集合 中添加数据
AddRange方法传入的时AddRange(IEnumerable<T> collection),因此我们可以向集合集合中添加一个数组或者一个集合。
//创建泛型集合对象
List<int> list = new List<int>();
//使用AddRange向集合中添加数据,可以添加一个反省集合的数组或者一个集合,因为AddRange方法内传入的值时AddRange(IEnumerable<T> collection)
//添加一个数组
list.AddRange(new int[] { 1, 2, 3, 4, 5, 6 });
//添加一个添加一个集合,此处是将集合自己本身添加进去。也可以添加和其他集合类型相同的集合
list.AddRange(list);
4、泛型集合的ToArray方法。 可以将集合转换为相同类型的数组
//创建泛型集合对象
List<string> listStr = new List<string>();
//通过ToArray方法将集合转换为数组
string[] str = listStr.ToArray();
5、将数组转换为对应类型的集合,使用ToList()
//将数组转换为对应类型的集合,使用ToList()
char[] chs = new char[] { 'c', 'b', 'a' };
List<char> listChar = chs.ToList();
//通过循环遍历数据,查找集合中的元素
for (int i = 0; i < listChar.Count; i++)
{
Console.WriteLine(listChar[i]);
}
6、 ArrayList集合和和list集合执行效率
ArrayList list = new ArrayList();
//这个循环发生了100万次装箱操作
Stopwatch sw = new Stopwatch();
//程序执行时间00:00:02.4370587
sw.Start();
for (int i = 0; i < 10000000; i++)
{
list.Add(i);
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
Console.ReadKey();
List<int> list2 = new List<int>();
Stopwatch sw = new Stopwatch();
//程序执行时间00:00:00.2857600
sw.Start();
for (int i = 0; i < 10000000; i++)
{
list2.Add(i);
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
Console.ReadKey();