/**//* * 通过一组数据直观了解单链表和线性表的特点 * Product by Pandajj at 15:23 2007-12-19 Wuhan */ package LinkedStructure; import java.util.AbstractList; import java.util.LinkedList; import java.util.ArrayList; import java.lang.System; publicclass TestLListAndAList ...{ publicstaticvoid main(String[] args) ...{ LinkedList<Integer> list1 =new LinkedList<Integer>(); ArrayList<Integer> list2 =new ArrayList<Integer>(); // 向两个表中各插入1000000个整数 for (int i =0; i <1000000; i++) ...{ list1.add(new Integer(i)); list2.add(new Integer(i)); } // 测量分别向两个表中index=100的位置插入整数10的用时 insertOneInteger(list1, 100, 10); insertOneInteger(list2, 100, 10); // 测量分别在两个表中搜索666666的用时 searchOneInteger(list1,666666); searchOneInteger(list2,666666); } publicstaticvoid insertOneInteger(AbstractList<Integer> list, int index, int num) ...{ long start = System.nanoTime(); list.add(index, new Integer(num)); long end = System.nanoTime(); System.out.println("Insert integer "+ num +" at index "+ index +" on " + list.getClass().getSimpleName() +". Time escaped: " + (end - start) +"ns"); } publicstaticvoid searchOneInteger(AbstractList<Integer> list, int num) ...{ long start = System.nanoTime(); list.contains(num); long end = System.nanoTime(); System.out.println("Search integer "+ num +" on " + list.getClass().getSimpleName() +". Time escaped: " + (end - start) +"ns"); } }
运行结果:
Insert integer 10 at index 100 on LinkedList. Time escaped: 34362ns Insert integer 10 at index 100 on ArrayList. Time escaped: 4608406ns Search integer 666666 on LinkedList. Time escaped: 28750302ns Search integer 666666 on ArrayList. Time escaped: 12788776ns