关于list.toArray的一点内容

关于list.toArray的一点内容:
List<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
String[] arry = new String[list.size()];
arry = list.toArray(new String[0]);
//一般情况下用下面这句
//list.toArray(arry);
System.out.println(arry[0]);
System.out.println(arry[1]);

str1
str2

List<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
String[] arry = new String[list.size()];
String[] arry2 = new String[list.size()];
arry2 = list.toArray(arry);
System.out.println(arry[0]);
System.out.println(arry[1]);
System.out.println(arry2[0]);
System.out.println(arry2[1]);
arry[0] = "strElse";
System.out.println(arry[0]);
System.out.println(arry2[0]);

str1
str2
str1
str2
strElse
strElse


从执行结果应该可以看出点端倪了。

最后附上API里面关于这个方法的说明:

T> T[] toArray(T[] a)
   返回以正确顺序包含列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。遵守 Collection.toArray(Object[]) 方法的常规协定。

指定者:
    接口 Collection<E> 中的 toArray
参数:
    a - 要存储列表中元素的数组,如果它足够大的话;否则为此目的分配一个运行时类型相同的新数组。
返回:
    包含列表中元素的数组。
抛出:
ArrayStoreException - 如果指定数组的运行时类型不是此列表中每个元素的运行时类型的超类型。
NullPointerException - 如果指定数组为 null。

你可能感兴趣的:(list,toArray)