您的位置:首页 > 其它

ArrayList和LinkList插入数据性能对比(分首端和末端插入)

2016-08-09 00:52 295 查看
1:运行代码如下
package com.mfl.hk;

import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List; /**
* Created by user on 16/8/4.
*/

/**
* 当ArrayList和LinkList均在数组尾端插入数据时,两者性能相差不大
* 当ArrayList和LinkList均在数组首端端插入数据时,LinkList明显优于ArrayList
*/
public class ListTest {
public static void main(String[] args) {

int n = 800000;

List<Integer> intListEnd = new ArrayList<Integer>();
long start1 = (new Date()).getTime();

for (int i = 0; i < n; i++) {
intListEnd.add(i);
}
long end1 = (new Date()).getTime();
long mid1 = end1 -start1;
System.out.println("ArrayList在数组尾端插入数据量为"+n+"时,所用时间毫秒是="+mid1);

List<Integer> linkListEnd = new LinkedList<Integer>();
long start2 = (new Date()).getTime();

for (int j = 0; j < n; j++) {
linkListEnd.add(j);
}
long end2 = (new Date()).getTime();
long mid2 = end2 -start2;
System.out.println("LinkList在数组尾端插入数据量为"+n+"时,所用时间毫秒是="+mid2);

List<Integer> intListStart = new ArrayList<Integer>();
long start3 = (new Date()).getTime();

for (int k = 0; k < n; k++) {
intListStart.add(0,k);
}
long end3 = (new Date()).getTime();
long mid3 = end3 -start3;
System.out.println("ArrayList在数组首端插入数据量为"+n+"时,所用时间毫秒是="+mid3);

List<Integer> linkListStart = new LinkedList<Integer>();
long start4 = (new Date()).getTime();

for (int l = 0; l < n; l++) {
linkListStart.add(0,l);
}
long end4 = (new Date()).getTime();
long mid4 = end4 -start4;
System.out.println("LinkList在数组首端插入数据量为"+n+"时,所用时间毫秒是="+mid4);
}
}

2:运行结果如图
3:说明
当ArrayList和LinkList均在数组尾端插入数据时,两者性能相差不大
当ArrayList和LinkList均在数组首端端插入数据时,LinkList明显优于ArrayList

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: