ArrayList和LinkedList怎么比较时间
   求程序ArrayList和LinkedList同时插入5000条,所用的时间

解决方案 »

  1.   

    在插入前设置个开始时间(long start = system.currenttimemillis),然后在插入完毕后,再用系统当前时间减去start时间,就是程序插入所用时间了吧。
      

  2.   

    http://blog.sina.com.cn/s/blog_4def2d3d0100pvhb.html
    插入到最后ArrayList快,插在最后LinkedList快。
    上面的链接有程序和讲解。
      

  3.   

    ArrayList内部是一个数组实现的,空间是连续的,而LinkedList是链表实现的,内存空间一般是不连续的。new ArrayList()的时候会给数组初始化默认大小,这个大小就固定了,当你不断的往数组里添加数据的时候,数组会满,此时会开辟一块更大的数组,因此会耗费较多的时间。而LinkedList没有这种情况,因此当插入数据量很大的时候,LinkedList的效率会更高。除非你知道插入数据的个数,然后new ArrayList()插入一个这个数组大小的参数。这样两种方法效率就会差不多。
      

  4.   

    static void arrayList_linkedList(int num){
    List<String> arrayList=new ArrayList<String>(num);
    List<String> linkedList=new LinkedList<String>();
    long start=System.currentTimeMillis();
    long end=0;
    for(int i=0;i<num;i++){
    arrayList.add(""+i);
    }
    end=System.currentTimeMillis();
    System.out.println("ArrayList:"+(end-start)+"ms");
    start=System.currentTimeMillis();;
    for(int i=0;i<num;i++){
    linkedList.add(""+i);
    }
    end=System.currentTimeMillis();
    System.out.println("ArrayList:"+(end-start)+"ms");
    }
      

  5.   

    在main方法里调用该方法  传5000进去就可以了。
      

  6.   

    这个建议楼主去看下数据结构,插入和删除LinkedList较快,查找ArrayLis较快
      

  7.   

    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;public class ListTime {

    public static void main(String args[]){

    List<String> arrayList=new ArrayList<String>();
    List<String> linkedList=new LinkedList<String>();

    long startTime=System.nanoTime();   //返回最准确的可用系统计时器的当前值,以毫微秒为单位。
    for(int i=0;i<5000;i++){
    arrayList.add("123456");
    }
    long endTime=System.nanoTime();
    System.out.println("ArrayList插入5000条数据所用时间为:"
                                            +(endTime-startTime));


    long startTime1=System.nanoTime();
    for(int i=0;i<5000;i++){
    linkedList.add("123456");
    }
    long endTime1=System.nanoTime();
    System.out.println("ArrayList插入5000条数据所用时间为:"
                                                 +(endTime1-startTime1));


    }

    }