javaJava性能

java数组转换成list性能比较

2015-09-24  本文已影响249人  cccchaos

今天遇到要用到将数组转换成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提供的方法。我们自己写的也许性能更好

上一篇 下一篇

猜你喜欢

热点阅读