java数组转换成list性能比较

今天遇到要用到将数组转换成list,看了一下Arrays里面有一个方法asList可以将数组转换成list。但是我们亦可以用for循环把数组转换成list。经过试验发现两种方法性能相差不较大。

试验代码:

packagecom.zhou.utils.test;

importjava.util.ArrayList;

importjava.util.Arrays;

importjava.util.List;

publicclassArrayToListTest {

publicstaticvoidmain(String[]args) {

Stringstr="1,1,1,1,1,1,11,1,1,1,1,1,1,1,11,1,1,1,1,1,1,11,1,1,1,1,1,11,1,1,,,2,2,22,2,2,2,22,2,2,2,2,22,2,2,2,2,2,22,2,2,2,2,2,22,2,2,2,2,2,2,22,,,2,2,2,22,2,,2,2,2,2,2,22,2,2,2,2,22,2,2,2,2,22,2,2,2,2,2,22,2,2,2,2,22,2,,22,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,,2,2,,2,2,2,2,2,2,2,2,,2,2,2,2,,2,2,2,2,2,,2,2,2";

useArraysUtils(str);

useFor(str);

}

publicstaticvoiduseArraysUtils(Stringstr){

longstart=System.nanoTime();

String[]strs=str.split(",");

Lista=Arrays.asList(strs);

longend=System.nanoTime();

System.out.println("========="+a.size()+"=====useTime:"+(end-start));

}

publicstaticvoiduseFor(Stringstr){

longstart=System.nanoTime();

Listlist=newArrayList();

String[]strs=str.split(",");

for(Stringstr1:strs){

list.add(str1);

}

longend=System.nanoTime();

System.out.println("========="+list.size()+"=====useTime:"+(end-start));

}

}

输出结果:

=========158=====useTime:1365970

=========158=====useTime:400812

第一个是用java的util类里面的方法,第二个是自己写的for循环,相差在三倍

我们在换短一点的str,这次我们用

Stringstr="2,2,2,2,2";

得出结果如下:

=========5=====useTime:472153

=========5=====useTime:60424

相差甚大。由此可见Arrays.asList方法的性能不如for循环。

所以我们在开发的时候不一定要用java提供的方法。我们自己写的也许性能更好

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 1,442评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,977评论 2 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,531评论 0 3