
for(int m=0;m<20000;m++){

linkedlist.add(m,null); //当在200000条数据之前插入20000条数据时,LinkedList只用了1125多ms.这就是LinkedList的优势所在

}

long time4 = new Dte().getTime();

System.out.print("batch linkedlist add:");

System.out.println(time4 - time3);

for(int n=0;n<20000;n++){

arraylist.add(n, null); //当在200000条数据之前插入20000条数据时,ArrayList用了18375多ms.时间花费是arraylist的近20倍(视测试时机器性能)

}

long time5 = new Date().getTime();

System.out.print("batch arraylist add:");

System.out.println(time5 - time4);

long time1 = new Date().getTime();

String s1 = (String) linkedlist.get(100000);// 总记录200000,linkedlist加载第100000条数据耗时15~32ms不等

long time2 = new Date().getTime();

System.out.println(time2 - time1);

String s2 = (String) arraylist.get(100000);// 总记录200000,linkedlist加载第100000条数据耗时0ms

long time3 = new Date().getTime();

System.out.println(time3 - time2);

/*分别insert200000条数据到linkedlist和arraylist

*由于是在末尾插入数据,arraylist的速度比linkedlist的速度反而要快

*/

public static void insertList(LinkedList linklist, ArrayList arraylist) {

long time1 = new Date().getTime();

System.out.println(time1);

for (int i = 0; i < 200000; i++) {

linklist.add(i, "linklist" + i);

}

long time2 = new Date().getTime();

System.out.println(time2 - time1);

for (int j = 0; j < 200000; j++) {

arraylist.add(j, "arraylist" + j);

}

long time3 = new Date().getTime();

System.out.println(time3 - time2);

}



/*delete linkedlist和arraylist中的200000条数据

*由于是在末尾删除数据,arraylist的速度比linkedlist的速度反而要快

*/

public static void deleteList(LinkedList linklist, ArrayList arraylist) {

long time1 = new Date().getTime();

System.out.println(time1);

for (int i = 199999; i >= 0; i--) {

linklist.remove(i);

}

long time2 = new Date().getTime();

System.out.println(time2 - time1);

for (int j = 199999; j >= 0; j--) {

arraylist.remove(j);

}

long time3 = new Date().getTime();

System.out.println(time3 - time2);

}


public static void main(String args[]) {

LinkedList linkedlist = new LinkedList();

ArrayList arraylist = new ArrayList();

insertList(linkedlist, arraylist);


//以下代码省略