欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

还原真像:ArrayList性能几乎完美,100万数据测试,arraylist万数

来源: javaer 分享于  点击 19854 次 点评:33

还原真像:ArrayList性能几乎完美,100万数据测试,arraylist万数


还原真像:ArrayList性能几乎完美,100万数据测试

程序汪汪 2018-07-17 22:17:21

背景

程序员面试题中经常遇到ArrayList与LinkedList区别,现实的测试情况肯定没多少人清楚。

 

理论是这样,现实测试情况很打脸啊。

学习目标

  • 搞清楚JDK1.8种ArrayList与LinkedList的性能情况

代码例子

环境准备:java jdk1.8版本,100万数据量,台式机8G内存、双核【速度很快哦】

注意测试结果,跟硬件配置关系很大,返回时间都是毫秒

程序员注意啦:NUM是100万,

 

 

测试结果

批量循环100万次添加元素,ArrayList、LinkedList的表现

  • 【尾部加元素】,性能都是差不多的。
  • 【首部加元素】,LinkedList就完虐ArrayList了

 

为啥首部加元素ArrayList慢了?

原因就是多了如下代码,

 

源码说明,如下。

 

ArrayList的尾部添加元素,就比首部添加元素少个COPY操作。

 

单个元素添加

性能没显著差异

ArrayList首部添加一个元素,性能消耗也非常小的。

核心测试代码

arrayList.add(0,new Content("11111""程序汪汪",2,"2018-03-16"));

linkedList.add(new Content("11111""程序汪汪",2,"2018-03-16"));

 

随机获取

性能没显著差异

核心测试代码

arrayList.get(555555);

linkedList.get(555555);

 

单个删除

性能没显著差异

核心测试代码

arrayList.remove(arrayList.get(555555));

linkedList.remove(555555);

 

总结

  • 除了在批量首部添加元素ArrayList性能差,其他情况都非常强劲啊。
  • 放心的用ArrayList吧,我这可是100万数据量,平时那点数据量性能消耗就更小了。

相关文章

    暂无相关文章

用户点评