码迷,mamicode.com
首页 > 编程语言 > 详细

数组、ArrayList和List<T>的区别

时间:2020-08-05 10:30:33      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:htm   array   引用   com   http   out   程序   通过   转换   

https://www.cnblogs.com/chris-zeng/p/10540291.html

 

数组:

优点:数组在内存中是连续存储的、所以它的索引速度是非常快的、时间复杂度为O(1)、而且它的赋值/修改/获取元素也是非常简单的。

缺点:1、定义数组的时候需要指定数组的长度(过长会造成内存浪费、过短会导致程序异常System.IndexOutOfRangeException:"索引超出数组界限")

   2、插入和删除元素效率低、也比较麻烦。

在不清楚数组长度的时候、就很尴尬了。 所以C#提供了ArrayList了来处理这些问题...

 

ArrayList:使用大小会根据需要动态增加的数组。

优点:1、ArrayList大小会根据需要动态增加的数组。

   2、实现了IList接口、可以方便的对数据进行添加、插入和删除。

缺点:1、ArrayList会把插入的数据都当做object类型来存储、在操作数据的时候可能会因为类型不匹配而出现异常、它是非类型安全的对象。

   2、由于存储的是object类型、在使用的时候进行类型转换、会造成装箱拆箱、从而损耗性能。

    装箱:把值类型转换成引用类型;

    拆箱:把引用类型转换成值类型。

 

List<T>:表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法。

优点:由于泛型List是强类型、编译器会验证类型安全。这样就避免了类型的不安全、以及数据强制转换导致装箱拆箱损耗性能。

 

数组、ArrayList和List<T>的区别

标签:htm   array   引用   com   http   out   程序   通过   转换   

原文地址:https://www.cnblogs.com/Manuel/p/13437696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!