不说废话,直接看代码:
/**
* @author HuYang
* @date 2016年8月15日 下午3:26:43
*/
public class TestJiHe { private static List<Integer> aList = new ArrayList<Integer>();
private static List<Integer> kList = new LinkedList<Integer>();
//测试变量
private static int para; public static void add(List<Integer> list){
int i = 0;
long startTime = System.currentTimeMillis();
while(i<para){
list.add(i);
i++;
}
long endTime = System.currentTimeMillis();
System.out.println(list.getClass().getSimpleName()+" "+"添加用时:"+(endTime - startTime));
} public static void delete(List<?> list){
Random r = new Random();
int index = r.nextInt(para);
long startTime = System.currentTimeMillis();
list.remove(index);
long endTime = System.currentTimeMillis();
System.out.println(list.getClass().getSimpleName()+" "+"第"+index+"被删除:"+index+",删除用时> "+(endTime - startTime));
} public static void get(List<Integer> list){
Random r = new Random();
int index = r.nextInt(para);
long startTime = System.currentTimeMillis();
int value = list.get(index);
long endTime = System.currentTimeMillis();
System.out.println(list.getClass().getSimpleName()+" "+"第"+index+"数据是:"+value+",查询用时> "+(endTime - startTime));
} public static void iterator(List<?> list){
Iterator<?> inter = list.iterator();
long startTime = System.currentTimeMillis();
while(inter.hasNext()){
inter.next();
}
long endTime = System.currentTimeMillis();
System.out.println(list.getClass().getSimpleName()+" "+"遍历用时:"+(endTime - startTime));
} public static void main(String[] args){ //测试数据量赋值
para = 9999; //创建测试对象
aList = new ArrayList<Integer>();
kList = new LinkedList<Integer>(); //执行测试
add(aList);
iterator(aList);
get(aList);
delete(aList);
System.out.println("<<=====================>>");
add(kList);
iterator(kList);
get(kList);
delete(kList);
}
}
测试结果:
ArrayList 添加用时:3
ArrayList 遍历用时:2
ArrayList 第9629数据是:9629,查询用时> 0
ArrayList 第4227被删除:4227,删除用时> 0
<<=====================>>
LinkedList 添加用时:2
LinkedList 遍历用时:1
LinkedList 第3022数据是:3022,查询用时> 1
LinkedList 第266被删除:266,删除用时> 0
增加para的值为:99999(每次执行的用时结果和CPU的时间片分配有关,但是大致走势不变):
ArrayList 添加用时:10
ArrayList 遍历用时:9
ArrayList 第47622数据是:47622,查询用时> 0
ArrayList 第74386被删除:74386,删除用时> 0
<<=====================>>
LinkedList 添加用时:8
LinkedList 遍历用时:11
LinkedList 第4682数据是:4682,查询用时> 0
LinkedList 第62292被删除:62292,删除用时> 0
增加para的值为:999999(每次执行的用时结果和CPU的时间片分配有关,但是大致走势不变):
ArrayList 添加用时:21
ArrayList 遍历用时:9
ArrayList 第497726数据是:497726,查询用时> 0
ArrayList 第415678被删除:415678,删除用时> 0
<<=====================>>
LinkedList 添加用时:75
LinkedList 遍历用时:21
LinkedList 第111957数据是:111957,查询用时> 1
LinkedList 第151875被删除:151875,删除用时> 1
结果大家分析一下就知道了,不做阐述。但是总感觉是ArrayList的性能在数据量较大时会比LinkedList好些,不知道是否正确,还请大家多多指教。
欢迎留言补充。