ArrayList与List性能测试
Posted blackteeth
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArrayList与List性能测试相关的知识,希望对你有一定的参考价值。
理论:由于ArrayList存储数据存在装箱(读取数据存在拆箱),而泛型List<T>直接对T类型数据进行存储,不存在装箱与拆箱拆箱操作,理论上速度应该快一些。
废话少说,上代码。
1 public void Test2() 2 { 3 float testData = 0.01f; 4 long length = 100000000; 5 Stopwatch sw = new Stopwatch(); 6 sw.Start(); 7 ArrayList arrayList = new ArrayList(); 8 for (long i = 0; i < length; i++) 9 { 10 arrayList.Add(testData); 11 } 12 sw.Stop(); 13 14 Stopwatch sw2 = new Stopwatch(); 15 sw2.Start(); 16 List<float> list = new List<float>(); 17 for (int i = 0; i < length; i++) 18 { 19 list.Add(testData); 20 } 21 sw2.Stop(); 22 Console.WriteLine("{0}次ArrayList装箱时间{1}", length, sw.Elapsed); 23 Console.WriteLine("{0}次List装箱时间 {1}", length, sw2.Elapsed); 24 25 }
输出结果ArrayList进行1亿此装箱操作耗时9秒多,而List<T>泛型直接存储数据不到1秒,性能高下立见。
以上是关于ArrayList与List性能测试的主要内容,如果未能解决你的问题,请参考以下文章
ArrayList去重常用的四种方式及性能对比(JMH性能分析)
比较List和ArrayList的性能及ArrayList和LinkedList优缺点
LinkedList 与 ArrayList 在维护有序列表方面的性能
ArrayList 与 List 关系与代码示例 - Java
Collections.synchronizedList CopyOnWriteArrayListVector介绍源码浅析与性能对比文末福利