我正在使用ArrayList中的toArray()实现,并遇到了一个看起来像是一个问题的场景(在检查apidocs的行为之后)。当我们将一个arraylist复制到一个较小的数组,然后打印出该数组的内容时,它会显示所有条目的空值。我在期待 1.一个例外,表明目标数组不能容纳源数组的所有元素,或者 2.数组只能复制到AL的最大索引。
以下是代码:
import java.util.ArrayList;
public class TestCollections {
public static void main(String a[]){
ArrayList<String> arrl = new ArrayList<String>();
arrl.add("First");
arrl.add("Second");
arrl.add("Third");
arrl.add("Random");
System.out.println("Actual ArrayList:"+arrl);
String[] strArrActual = new String[arrl.size()];
String[] strArrSmaller = new String[arrl.size()-1];
arrl.toArray(strArrActual);
arrl.toArray(strArrSmaller);
System.out.println("Content of actual sized array:");
for(String str:strArrActual){
System.out.println(str);
}
System.out.println("-----");
System.out.println("Content of smaller sized array:");
System.out.println(strArrSmaller.length);
for(String str:strArrSmaller){
System.out.println(str);
}
}
}
以下是输出:
Actual ArrayList:[First, Second, Third, Random]
Content of actual sized array:
First
Second
Third
Random
-----
Content of smaller sized array:
3
null
null
null
我哪里错了?