先来看下面这段程序
Collection collect= new ArrayList();
collect.add("小黑");
collect.add("小白");
collect.add("小红");
在上面程序中我创建了一个集合放置了3个String类型的值
接下来我们看官方对toArray(Object array[])这个方法的描述
1.如果array的大小与匹配的元素的个数相等,它们被返回到array
程序解释:
String[] arrs = new String[3];
String[] copys = (String[])collect.toArray(arrs);
值:arrs:[小黑, 小白, 小红]
copys:[小黑, 小白, 小红]
2.如果array的大小比匹配元素的个数小,将分配并返回一个所需大小的新数组
程序解释:
String[] arrs = new String[2];
String[] copys = (String[])collect.toArray(arrs);
值:arrs:[[null, null]]
copys:[小黑, 小白, 小红]
3.如果array的大小比匹配元素的个数大,在数组中,在类集元素之后的单元被置为null
程序解释:
String[] arrs = new String[5];
String[] copys = (String[])collect.toArray(arrs);
值:arrs:[小黑, 小白, 小红, null, null]
copys:[小黑, 小白, 小红, null, null]
4.如果任一类集元素的类型都不是array的子类型,则引发一个ArrayStoreException异常
程序解释:
collect.add(1);
String[] arrs = new String[5];
String[] copys = (String[])collect.toArray(arrs);
抛出异常:java.lang.ArrayStoreException