六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 48|回复: 0

ArrayList与LinkedList的性能比较

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-1-15 03:10:37 | 显示全部楼层 |阅读模式
今天有时间自己也测试了下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());}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表