0
点赞
收藏
分享

微信扫一扫

【Java编程性能调优】使用ArrayList还是LinkedList?

月白色的大狒 2022-02-18 阅读 67

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 循环性能是最好的。

举报

相关推荐

0 条评论