先来看下面这段程序

  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

05-08 15:13