浏览 5004 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-20
如果参数的长度大于集合中元素的数量,那只把集合的元素放到数组里,如果相等,就全放进去,如果数组长度小,就生成一个新的对应数组 是不是说如果加入的参数大于或等于集合元素的数量,就先把集合的元素放入new T[]这个数组里,再由这个T赋值给自己定义的T类型的数组 如果加入的参数小于集合元素的数量,则声明一个新的数组(我们并不知道这个数组的名字),再由这个我们不知道名字的数组赋值给自己定义的T类型的数组 希望高人能够帮我解惑 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-21
自己顶一下
|
|
返回顶楼 | |
发表时间:2007-06-21
自己顶一下
|
|
返回顶楼 | |
发表时间:2007-06-21
你有时间问,为什么不自己看一下源代码,或者测一下呢?
源码 public <T> T[] toArray(T[] a) { if (a.length < size) a = (T[])java.lang.reflect.Array. newInstance(a.getClass().getComponentType(), size); System.arraycopy(elementData, 0, a, 0, size); if (a.length > size) a[size] = null; return a; } 测试 import java.util.ArrayList; /** * @author Administrator * */ public class ToArrayTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayList al = new ArrayList(); for (int i = 0; i < 10; i++) { al.add(String.valueOf(i)); } String[] s1 = (String[]) al.toArray(new String[15]); for (int i = 0; i < s1.length; i++) { System.out.println(i+","+s1[i]); } String[] s2 = (String[]) al.toArray(new String[5]); for (int i = 0; i < s2.length; i++) { System.out.println(i+","+s2[i]); } } } |
|
返回顶楼 | |
发表时间:2007-06-21
恩。自己要注意看看源代码了~
|
|
返回顶楼 | |
发表时间:2007-08-27
查询java API吧
|
|
返回顶楼 | |