你的位置:首页 > Java教程

[Java教程]比较ArrayList和LinkedList


比较一:添加内容

 

涉及方法:add

 

  public void add_test(){    List<Person> addlist = new ArrayList<Person>();    Person p = new Person("阿呆",20);
long begin = System.currentTimeMillis(); System.out.println("ArrayList 开始时间:"+begin); for(int i=0; i<10000000; i++){ addlist.add(p); // System.out.println("第"+i+"个"+"所用时间:"+(System.currentTimeMillis()-begin)); } long over = System.currentTimeMillis(); System.out.println("ArrayList 结束时间:"+over); System.out.println("ArrayList 最终时间:"+(over-begin)); }

注:这是ArrayList的测试代码,但是测LinkedList只要把addlist的类型改一下就行,改成LinkedList

结果:

 

ArrayList

 

 

LinkedList

 

显然在插入10000000条数据时,耗时LinkedList>ArrayList

 

 

 

比较二:获取内容

 

 

 

涉及方法:get、contains、indexOf、lastIndexOf

 

get测试

  public void get_test(){        //准备工作,添加一堆阿呆,添加一个阿傻    List<Person> getlist = new ArrayList<Person>();    Person p = new Person("阿呆",20);    for(int i=0; i<10000000; i++){      getlist.add(p);    }    Person p2 = new Person("阿傻",20);    getlist.add(77777,p2);    System.out.println("添加完成");            // get 测试,时间0    long begin = System.currentTimeMillis();    System.out.println("get测试开始时间:"+begin);    getlist.get(7777777);    long over = System.currentTimeMillis();    System.out.println("get测试结束时间:"+over);    System.out.println("get测试最终时间:"+(over-begin));  }  

 

结果

ArrayList

LinkedList

 

 

 

contains测试

    // contains 测试,最终时间0    long begin = System.currentTimeMillis();    for(int i=0; i<10000; i++){      getlist.contains(p2);    }    long over = System.currentTimeMillis();    System.out.println("contains测试最终时间:"+(over-begin));

注:只要把上面测试add的那段代码换成这段,就可以测试contains,准备工作的代码不变

 

结果

ArrayList

LinkedList

 

 

 

indexOf测试

 

 

 

lastIndexOf测试