比较一:添加内容
涉及方法: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测试
原标题:比较ArrayList和LinkedList
关键词:array