ArrayList 和 LinkedList 新增元素操作测试
这里基于 ArrayList 初始化容量足够,排除动态扩容数组容量的情况下进行的测试,如果有动态扩容的情况,ArrayList 的效率也会降低。
- 从集合头部位置新增元素
- 从集合中间位置新增元素
- 从集合尾部位置新增元素
测试结果 (花费时间):
- ArrayList>LinkedList
- ArrayList<LinkedList
- ArrayList<LinkedList
通过这组测试,我们可以知道 LinkedList 添加元素的效率未必要高于 ArrayList。
ArrayList 和 LinkedList 删除元素操作测试
- 从集合头部位置删除元素
- 从集合中间位置删除元素
- 从集合尾部位置删除元素
测试结果 (花费时间):
- ArrayList>LinkedList
- ArrayList<LinkedList
- ArrayList<LinkedList
ArrayList 和 LinkedList 删除元素操作测试的结果和添加元素操作测试的结果很接近,这是一样的原理。
ArrayList 和 LinkedList 遍历元素操作测试
- for(;;) 循环
- 迭代器迭代循环
测试结果 (花费时间):
- ArrayList<LinkedList
- ArrayList≈LinkedList
LinkedList 的 for 循环性能是最差的,而 ArrayList 的 for 循环性能是最好的。