比较ArrayList和LinkedList的插入性能及优缺点

ArrayList采用的数组的形式来保存对象的,这种当时将对象发在连续的位置中。
      缺点:插入删除的时候非常麻烦。
LinkedList采用将对象放在独立的空间中,而且在每个空间还保存着下一个对象的索引。
      缺点:查找非常麻烦,要从第一个开始索引。

      因此:在相同的位置 index 插入数据,index 越靠前,ArrayList需要挪动的数据就最多,插入的时间就越长;而LinkedList从第一开始索引的数据就越少,插入的时间越短。当index忘后移时,ArrayList需要挪动的数据就越少,插入的时间就渐短;而LinkedList从第一个数据开始索引的数据就越多,插入的时间就渐长。

 1 import java.util.*;
 2 
 3 public class compare_ArrayListAndLinkedList{
 4     public static void main(String [] args){
 5         List arrayList = new ArrayList();
 6         List linkedList = new LinkedList();
 7         
 8         for(int i=0 ; i< 100000 ;i++){
 9            arrayList.add(i);
10            linkedList.add(i);
11         }
12         arrayList = new compare_ArrayListAndLinkedList().testInsertArrayList(arrayList);
13         
14         linkedList = new compare_ArrayListAndLinkedList().testInsertLinkedList(linkedList);
15         
16     }
17     
18     public List testInsertArrayList(List ls){
19        long start = 0;
20        long end = 0;
21        
22        start = System.currentTimeMillis();
23        for(int k=0;k<100000;k++){
24           ls.add(10000+k,100);            //在末尾插入的时间
25           // ls.add(1,100);                 在前面插入的时间
26        }
27        end = System.currentTimeMillis();
28        
29        System.out.println("start = " + start);
30        System.out.println("end = "+ end);
31        System.out.println("ArrayList在指定位置插入的时间:" + (end-start));
32        return ls;
33     }
34     
35     public List testInsertLinkedList(List ls){
36        long start = 0;
37        long end = 0;
38        
39        start = new Date().getTime();//System.currentTimeMillis();
40        for(int k=0;k<100000;k++){
41           ls.add(10000+k,100);            //在末尾插入的时间
42           // ls.add(1,100);                 在前面插入的时间
43        }
44        end = new Date().getTime(); //System.currentTimeMillis();
45       
46           System.out.println("start = " + start);
47        System.out.println("end = "+ end);
48        System.out.println("LinkedList在指定位置插入的时间:"+ (end- start));
49        return ls;
50     }
51 }

在末尾插入的时间:

在首部插入的时间:

转载于:https://www.cnblogs.com/zhaoxingjun/articles/5657415.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值