前言

上一章 我们讲解到了集合(ArrayList)的概念和用法 本篇呢 我们将要讲解的是与集合相似的一个新的语法 叫列表 我们一起看看列表 究竟与集合有什么不同之处呢? 制作不易还请各位一键三连哦!

文章目录

前言列表定义构造函数属性常用方法

集合与列表的区别对比拆箱装箱类型安全

总结

列表定义

List定义在using System.Collections.Generic命名空间下,使用时需要对该命名空间进行引用。

List 列表名 = new List(); //其中T代表着列表中的元素类型

我们突然发现 好像这个所谓的列表 和 我们上一章所学习到的集合 没什么区别啊 只是关键字不相同罢了 那具体一点到底有什么区别呢 我们往下来看。

构造函数

List() //初始化List类的新实例,该实例为空并且具有默认初始容量。

List(IEnumerable) //初始化List()类的新实例,该类型包含从指定集合复制的元素

List(Int32) //初始化List类的新实例,该实例为空且具有指定的初始容量。

属性

Count //获取List中包含的元素数量。

常用方法

添加元素 2. 插入元素 3. 移除元素 4. 元素排序 5. 包含 这些 就是列表基本的一些常用的方法 可是我们学会了这么多 那么还是没搞懂究竟他与集合有什么区别 下面请看一图总结:

集合与列表的区别

它们之间的对比其实就在于“泛型”这个概念上:

对比

通过使用泛型,我们可以极大地提高代码的重用度,避免了隐式的装箱、拆箱,在一定程度上提升了应用程序的性能。通过创建泛型类,可以创建一个在编译时类型安全的集合

拆箱装箱

与我们之前讲解泛型时 所说的一样 这样可以避免很多的“装箱”“拆箱”的操作

ArrayList list=new ArrayList();

list.Add(20); 装箱,list存放的是object类型元素,须将值类型转化为引用类型。

int i=(int)list[0]; 拆箱,list[0]的类型是object,要赋值就得把引用类型转化为值类型。

如果换成泛型编程,就不会有装箱和拆箱的性能损失

List list=new List();

list.Add(20); 因为指定了用int来实例化,因此不必装箱。

int i=list[0]; 同样地,访问时也不需要拆箱

类型安全

ArrayList list = new ArrayList();

list.Add(3);

list.Add("It is raining in Redmond.");

foreach(int i in list)

{

Debug.Log (i); 异常,因为并不是集合中的所有元素都可以转化为int。

}

如果改用泛型编程,则可以避免这种异常,让编译器检查出错误

List list=new List();

list.Add(20);

list.Add(“string”); 编译时报错,只能将整数类型添加到集合中

总结

其实归根结底 还是将泛型引用到了别的地方 来方便我们更快捷的进行操作 所以大家应该更要清楚泛型的重要性和实用性 避免很多资源的浪费。

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。