import java.util.*;
class Student 
 { String name;
   int number;
   Student(String name,int number)
   { this.name=name;
 this.number=number;  
   }
 }

public class TestIterator
{
public static void main(String[] args)
{  List list=new LinkedList();
   for(int k=1;k<=22222;k++)
    { list.add(new Student("i am"+k,k));
}
   Iterator iter=list.iterator();
           long time1=System.currentTimeMillis();
   System.out.println(time1);
   while(iter.hasNext())
    { Student te=(Student)iter.next();
   
    }  
   long time2=System.currentTimeMillis();
   System.out.println(time2);
   System.out.println("遍历链表用时:"+(time2-time1)+"毫秒");
   time1=System.currentTimeMillis();
   for(int i=0;i<list.size();i++)
   { Student te=(Student)list.get(i);
   
   }  
   time2=System.currentTimeMillis();
   System.out.println("遍历链表用时:"+(time2-time1)+"毫秒");
}}上面的程序是比较get方法和Iterator对象遍历链表,这儿System.out.println(time1);中
输出long型数据“1573519246931“,为什么这儿的毫秒数高达十几位,虚拟机编译时不需要
这长的时间啊??

解决方案 »

  1.   

    链表添加删除速度快,定位慢。如果要遍历快就用ArrayList
      

  2.   

    currentTimeMillis
    public static long currentTimeMillis()返回以毫秒为单位的当前时间。注意,当返回值的时间单位是毫秒时,值的粒度取决于底层操作系统,并且粒度可能更大。例如,许多操作系统以几十毫秒为单位测量时间。 
    请参阅 Date 类的描述,了解可能发生在“计算机时间”和协调世界时(UTC)之间的细微差异的讨论。 
    返回:
    当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。
    另请参见:
    Date--------------------------------------------------------------------------------