以查询来比较arrylist与linkedlist的速度
参考别人写的。
package cn.ehoo.test;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.LinkedList;import java.util.List;import java.util.Random;/** * 以查询来比较arrylist与linkedlist的速度*@author whp*@Email whp@ehoo.cn*@Jan 13, 2011* */public class TestList { public static final int N=50000; public static List<Integer> values; static{ Integer vals[]=new Integer[N]; Random r=new Random(); for(int i=0,currval=0;i<N;i++){ vals[i]=new Integer(currval); currval+=r.nextInt(100)+1; } values=Arrays.asList(vals);// 这里把数据转换成list } static long timeList(List<Integer> lst){ long start=System.currentTimeMillis(); for(int i=0;i<N;i++){ int index=Collections.binarySearch(lst, values.get(i));//使用二进制搜索算法来搜索指定列表,以获得指定对象。 if(index!=i) System.out.println("***错误***"); } return System.currentTimeMillis()-start; } public static void main(String args[]){ System.out.println("ArrayList消耗时间:"+timeList(new ArrayList<Integer>(values))); System.out.println("LinkedList消耗时间:"+timeList(new LinkedList<Integer>(values))); } } 我的输出是:
ArrayList消耗时间:16
LinkedList消耗时间:24171