标签:结果 img 场景 com 了解 code lazy linked inf
我们都知道ArrayList适合查询/替换
、LinkedList适合添加/删除
,造成这样子的原因也在于它们底层的实现。光说这些理论似乎大家都会,所以准备用更加具体的例子来证明它,也能更好地比较这两者之间的性能关系。在测试具体场景前,简单说明下环境配置,window环境下:内存8个G;JDK8;i7处理器。
分别准备1w、5w、10w、50w、100w条数据,也就是说数据类别有上面这几种,将它们分别按照下列场景测试。
在首部、尾部添加元素/节点的效率。
随机位置/索引插入元素/节点的效率。
在首部、尾部删除元素/节点的效率。
随机位置/索引删除元素/节点的效率。
随机位置/索引获取元素/节点的效率。
随机位置/索引修改元素/节点的效率。
测试结果将以表格的方式展示。
A首:ArrayList首部添加元素,L首:LinkedList首部添加元素,A尾:ArrayList尾部添加元素,L尾:LinkedList尾部添加元素。
A随:ArrayList随机位置添加元素,L随:LinkedList随机位置添加元素。
由于50w、100w执行时间过长故并未给出具体时间,不过已经足以说明结果了。
A首:ArrayList首部删除元素,L首:LinkedList首部删除元素,A尾:ArrayList尾部删除元素,L尾:LinkedList尾部删除元素。
同上。
同上。
同上。
以上的测试方式较为简单,没有考虑其他太多的因素,所以不要纠结于具体的时间,而是要了解它们的性能趋势。从测试结果来看,可以得到更为具体的结论:
在首部添加/删除元素/节点过程中
,随着数据量的不断增大,LinkedList明显要比ArrayList优秀很多
,而对于尾部添加/删除
,两者则差别不大
。
在随机插入/删除/获取/替换元素/节点过程中,随着数据量的不断增大,ArrayList明显要比LinkedList优秀很多!
ArrayList比LinkedList更能适应大多数情况
。
频繁在首部添加/删除元素/节点,不需要过多的访问,可能更适合LinkedList。
标签:结果 img 场景 com 了解 code lazy linked inf
原文地址:https://www.cnblogs.com/zlia/p/14165210.html