arraylist与泛型list的应用场合和性能比较

arraylist与泛型list的应用场合和性能比较

ID:14725922

大小:24.46 KB

页数:2页

时间:2018-07-30

arraylist与泛型list的应用场合和性能比较_第1页
arraylist与泛型list的应用场合和性能比较_第2页
资源描述:

《arraylist与泛型list的应用场合和性能比较》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ArrayList与泛型List的应用场合和性能比较分析ArrayList:使用大小可按需动态增加的数组实现IList接口。泛型List类:表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。测试结果:性能比较见所附程序:以三种方式测试1)Form方式,应用场合Doc/View结构测试样本ListArrayList1个Form加入0.00010790.00004661个Form移除0.00001300.00000362个Form加入0.00015020.0000

2、9142个Form移除0.00001530.000005310个Form加入0.00050520.000446310个Form移除0.00002750.000017220个Form加入0.00096730.000906920个Form移除0.00004230.0000328100个Form加入0.00448500.0043502100个Form移除0.00017290.0001609500个Form加入0.02217230.0219606500个Form移除0.00078630.0007721以上测试说明:

3、加入Form到ArrayList或者List中,由于本身new一个Form对象需要很多调用故此测试数据本身已没有参考价值,该数据随环境不同变化,测试程序是先顺序创建Form到List集合,然后再创建到ArrayList集合,如果调整该顺序可能得到相反的结果。测试结论:在该场合下,使用ArrayList或者是List基本没有性能差别,或者完全不影响用户感受,从原理上说,创建低于500个元素加入集合ArrayList性能更好,只有在超过500以上元素时,List才可能具有优势,但加入50

4、0个窗体的情况现实中基本不存在。故此此类场合使用ArrayList是比较方便和性能更好的。2)值方式测试样本ListArrayList100000个int加入0.00117620.00514641000000个int加入0.01261240.126659110000000个int加入0.15666851.4461640以上测试说明:通过分别向ArrayList和List加入int型变量进行测试。测试结论:在该场合下,使用List比ArrayList具有优势,特别是当值超过500以上,

5、由于ArrayList需要进行装箱拆箱工作,故此List具有性能优势,对于计算场合超过10万以上的值集合运算,应优先使用List1)引用方式测试样本ListArrayList1个Class加入0.00000150.00000102个Class加入0.00000180.0000011100000个Class加入0.01964120.01705675000000个Class加入1.52300981.223391710000000个Class加入2.38846552.2343513以上测试

6、说明:通过分别向ArrayList和List加入类进行测试。测试结论:在该场合下,当创建的对象小于500个时ArrayList具有性能优势,当大于500时,两者基本相同,(测试数据不具有参考性,调整代码顺序或者重复执行可得到不同数据)应用场合和性能比较分析ArrayList本质上与List不同,两者并非替代关系,而是需要应用在不同的场合,ArrayList存放的是Object对象,存取时有拆箱和装箱的性能损失,但另一方面,这样的优势是可以存放不同的对象。泛型List是一种类型安全的集合,故

7、此应以使用泛型List为主。通过以上测试进行比较分析得出以下结论:性能结论:1)对于值类型的集合存放,List具有性能优势,应优先采用。例如存放:int,long,byte,short,decimal,double,float,char,bool,结构体,枚举等。2)对于引用类型的集合存放,MSDN声称两者性能相同,实际上还有微小差别,ArrayList默认会创建16元素,当超过时自增,List只有超过500个元素时才会体现出相比ArrayList的拆箱装箱所具有的优势,但实际环境比较二者性能差

8、别不大,会根据环境等因素得出不同测试数据。例如存放:类、接口、委托、字符串等。应用场合:1)优先使用泛型List.因为它是类型安全的,可以在编译器检查错误。2)在存放值类型集合时,使用List,例如存放用于运算的值集合。3)在存放较少的对象集合时,应使用ArrayList。如View集合(Form集合)、线程集合、较少元素的字符串集合等。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。