List和ArrayList和区别。这是我见过最清晰地解释
来源:互联网 发布:直播黄的软件 编辑:程序博客网 时间:2024/05/29 14:59
原文链接
在ArrayList中,我们不仅插入了字符串"abc",而且又插入了数字123。这样在ArrayList中插入不同类型的数据是允许的。因为ArrayList会把所有插入其中的数据都当作为object类型来处理。这样,在我们使用ArrayList中的数据来处理问题的时候,很可能会报类型不匹配的错误,也就是说ArrayList不是类型安全的。既使我们保证在插入数据的时候都很小心,都有插入了同一类型的数据,但在使用的时候,我们也需要将它们转化为对应的原类型来处理。这就存在了装箱与拆箱的操作,会带来很大的性能损耗。
装箱与拆箱的概念: 简单的来讲: 装箱:就是将值类型的数据打包到引用类型的实例中 比如将int类型的值123赋给object对象o
int i=123; object o=(object)i;
拆箱:就是从引用数据中提取值类型 比如将object对象o的值赋给int类型的变量i
object o=123; int i=(int)o;
装箱与拆箱的过程是很损耗性能的。
正是因为ArrayList存在不安全类型与装箱拆箱的缺点,所以在C#2.0后出现了泛型的概念。而List类是ArrayList类的泛型等效类。它的大部分用法都与ArrayList相似,因为List类也继承了IList接口。最关键的区别在于,在声明List集合时,我们同时需要为其声明List集合内数据的对象类型。
List泛型的好处:通过允许指定泛型类或方法操作的特定类型,泛型功能将类型安全的任务从您转移给了编译器。不需要编写代码来检测数据类型是否正确,因为会在编译时强制使用正确的数据类型。减少了类型强制转换的需要和运行时错误的可能性。泛型提供了类型安全但没有增加多个实现的开销。
阅读全文
0 0
- List和ArrayList和区别。这是我见过最清晰地解释
- List 和 ArrayList 区别
- List和ArrayList区别
- 我见过的关于notify()和notifyAll()区别的最简洁的代码
- 我见过最清晰的--理解梯度,散度,旋度
- arrayList——list和arrayList区别
- List和ArrayList的区别
- List和ArrayList的区别
- List和ArrayList的区别
- List和ArrayList的区别
- List和ArrayList的区别
- List和Arraylist的区别
- List和ArrayList的区别
- List和ArrayList的区别
- List和ArrayList的区别
- List和ArrayList的区别
- List和ArrayList的区别
- List和ArrayList的区别
- phpexcel生成分页
- 欢迎使用CSDN-markdown编辑器
- Educational Codeforces Round 23 A-F
- python编写暴力破解zip文档程序
- Android Studio报AndroidRunConfigurationType 、Plugins插件找不到的问题
- List和ArrayList和区别。这是我见过最清晰地解释
- 【OpenCV图像处理】二十五、角点检测
- 区块链技术比人工智能更具革命性意义,技术监管让公权力收敛
- 《linux程序设计学习笔记》之一---文件和目录的维护
- 友元
- import caffe失败 No module named caffe
- 《Android 复杂的列表视图新写法 · 详解篇》多条目
- 局域网不能访问本机IIS网站的解决方法
- centos7安装Python3.6以及解决yum不能使用问题