首页 > 其他 > 详细

LinkedList和ArrayList

时间:2016-04-21 01:37:19      阅读:283      评论:0      收藏:0      [点我收藏+]

ArrayList与LinkedList在底层的实现是不一样的,前者依托于数组,后者依托于链表,与其说是ArrayList与LinkedList的区别不如说是数组与链表的区别。

1.对于数组(ArrayList)而言,随机访问的get比较占优势。

例子:

对于均存放了200000个元素的ArrayList和LinkedList,使用get获取其中元素。

     int temp=0;
        System.out.print("ArrayList获取元素的时间\n");
        for(int j=0;j<arrlist.size();j++){
            if(j%40000==0){
                temp++;
                long begin2 = System.nanoTime();
                System.out.println(arrlist.get(j));
                long end2 = System.nanoTime();
                System.out.println("第"+temp+"次获取i值所用时间"+(end2-begin2)+"ns");
            }
        }
        int temp1=0;
        System.out.print("LinkedList获取元素的时间\n");
        for(int j=0;j<linlist.size();j++){
            if(j%40000==0){
                temp1++;
                long begin3 = System.nanoTime();
                System.out.println(linlist.get(j));
                long end3 = System.nanoTime();
                System.out.println("第"+temp1+"次获取i值所用时间"+(end3-begin3)+"ns");
            }
        }

运行结果:

技术分享

 

2.对于链表(LinkedList)而言,add和remove操作要快很多。

但是实际情况来看,如果是单条数据的插入LinkedList反而没有ArrayList快

例子:

        long begin = System.nanoTime();
        for(int i=0;i<200000;i++){
            arrlist.add("data");
        }
        long end = System.nanoTime();
        System.out.print((end-begin)+"ns");
        System.out.print("\n");
        long begin1 = System.nanoTime();
        for(int i=0;i<200000;i++){
            linlist.add("data");
        }
        long end1 = System.nanoTime();
        System.out.print((end1-begin1)+"ns");
        System.out.print("\n");        

运行结果:

技术分享

但是如果是随机的批量增加删除数据,LinkedList是比ArrayList快多了的。(实验未验证)

3.LinkedList的方法较丰富。有getFirst(),getLast()这些都是ArrayList没有的。

4.总结:

查询操作用ArrayList,插入删除用LinkedList。

数据不是很庞大,没必要纠结。

LinkedList和ArrayList

原文:http://www.cnblogs.com/Rui-Jia/p/5415178.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!