在线等,学习问题
public    <T>    T[]   toArray(T[]   a)   {   //将聚集中的元素,转换为指定类型的数组 
 int   size   =   size(); 
 if   (a.length    <   size)   //当指定数组长度小于聚集中元素的数目时,创建指定类型的数组 
 a   =   (T[])java.lang.reflect.Array.newInstance(a.getClass().getComponentType(),   size); 
 //利用java的反射机制,根据输入数组的类型,创建和聚集相同容量的指定类型的数组 
 //然后将聚集中的内容,利用iterator接口将其放入数组中 
 Iterator <E>    it=iterator(); 
 Object[]   result   =   a;//这里为什么创建一个等于a的数组引用,直接使用a去操作不是一样吗? 
 for   (int   i=0;   i <size;   i++) 
 result[i]   =   it.next(); 
 if   (a.length   >    size)   a[size]   =   null;   //这是干什么的啊?仔细想想吧!有什么问题吗 
 return   a; 
 }
------解决方案--------------------这应该Collection接口的 toArray <T[] a> 方法 
 size()方法与之对应! 
 这样就很容易理解了!