ArrayList与LinkedList的性能比较
今天有时间自己也测试了下ArrayList与LinkedList在读写操作的性能,结果如下:os:winxp sp2 JDK1.5.10 cpu:奔腾D2.8 内存:1G
在10000条数据下:
结果一:
ArrayList add Method 耗时:0
ArrayList get Method 耗时:15
ArrayList iterator Method 耗时:0
ArrayList remove Method 耗时:79
LinkedList add Method 耗时:15
LinkedList get Method 耗时:266
LinkedList iterator Method 耗时:0
LinkedList remove Method 耗时:0
array size:0
link size:0
结果二:
ArrayList add Method 耗时:15
ArrayList get Method 耗时:0
ArrayList iterator Method 耗时:0
ArrayList remove Method 耗时:78
LinkedList add Method 耗时:16
LinkedList get Method 耗时:266
LinkedList iterator Method 耗时:0
LinkedList remove Method 耗时:15
array size:0
link size:0
比率基本是5:5
在100000条数据下:
ArrayList add Method 耗时:78
ArrayList get Method 耗时:0
ArrayList iterator Method 耗时:16
ArrayList remove Method 耗时:7672
LinkedList add Method 耗时:109
LinkedList get Method 耗时:40547
LinkedList iterator Method 耗时:0
LinkedList remove Method 耗时:16
array size:0
link size:0
import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.LinkedList;;/** * 描述:小波think * **/public class Test {private static List array = new ArrayList();private static List link = new LinkedList();private static final int count = 10000;public static void testArrayListAddMethod(){long start = System.currentTimeMillis();for(int i=0;i<count;i++){array.add(i);}System.out.println("ArrayList add Method 耗时:"+(System.currentTimeMillis()-start));}public static void testArrayListRemoveMethod(){int size = count;long start = System.currentTimeMillis();for(int i=0;i<size;i++){array.remove(i);i--;size--;}System.out.println("ArrayList remove Method 耗时:"+(System.currentTimeMillis()-start));}public static void testArrayListGetMethod(){long start = System.currentTimeMillis();for(int i=0;i<count;i++){array.get(i);}System.out.println("ArrayList get Method 耗时:"+(System.currentTimeMillis()-start));}public static void testArrayListIteratorMethod(){Iterator it = array.iterator();long start = System.currentTimeMillis();while(it.hasNext()){it.next();}System.out.println("ArrayList iterator Method 耗时:"+(System.currentTimeMillis()-start));}public static void testLinkedListAddMethod(){long start = System.currentTimeMillis();for(int i=0;i<count;i++){link.add(i);}System.out.println("LinkedList add Method 耗时:"+(System.currentTimeMillis()-start));}public static void testLinkedListRemoveMethod(){int size = count;long start = System.currentTimeMillis();for(int i=0;i<size;i++){link.remove(i);i--;size--;}System.out.println("LinkedList remove Method 耗时:"+(System.currentTimeMillis()-start));}public static void testLinkedListGetMethod(){long start = System.currentTimeMillis();for(int i=0;i<count;i++){link.get(i);}System.out.println("LinkedList get Method 耗时:"+(System.currentTimeMillis()-start));}public static void testLinkedListIteratorMethod(){Iterator it = link.iterator();long start = System.currentTimeMillis();while(it.hasNext()){it.next();}System.out.println("LinkedList iterator Method 耗时:"+(System.currentTimeMillis()-start));}public static void main(String[] args) {testArrayListAddMethod();testArrayListGetMethod();testArrayListIteratorMethod();testArrayListRemoveMethod();testLinkedListAddMethod();testLinkedListGetMethod();testLinkedListIteratorMethod();testLinkedListRemoveMethod();System.out.println("array size:"+array.size());System.out.println("link size:"+link.size());}}
页:
[1]