new string[0]的作用比如:String[] result = set.toArray(new String[0]);
这里的String[0]是不是分配0长度数组? 为什么要用0.
谁解释下。

解决方案 »

  1.   

    返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。如果指定的数组能容纳该 collection,则返回包含此 collection 元素的数组。否则,将根据指定数组的运行时类型和此 collection 的大小分配一个新数组。
    如果指定的数组能容纳 collection 并有剩余空间(即数组的元素比 collection 的元素多),那么会将数组中紧跟在 collection 末尾的元素设置为 null。(这对确定 collection 的长度很有用,但只有 在调用方知道此 collection 没有包含任何 null 元素时才可行。)如果此 collection 对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。像 toArray 方法一样,此方法充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。更进一步说,此方法允许在输出数组的运行时类型上进行精确控制,并且在某些情况下,可以用来节省分配开销。假定 l 是只包含字符串的一个已知 List。以下代码用来将该列表转储到一个新分配的 String 数组:      String[] x = (String[]) v.toArray(new String[0]);
     注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。 
    参数:
    a - 存储此 collection 元素的数组(如果其足够大);否则,将为此分配一个具有相同运行时类型的新数组。 
      

  2.   

    长度为0
      String[] result = new String[0]
      System.out.println(result.length);//0
      

  3.   


     String[] result = set.toArray(new String[0]);
    我set中放了元素,如果长度是定长0的话,请问怎么能放进去??
      

  4.   

    注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。 这里,String[] result = set.toArray(new String[0]); 
    我把 toArray(new String[0])换成toArray(new String),这样会出现类型不匹配的错误。。怎么改
      

  5.   

                    Set<String> set = new TreeSet<String>();
    set.addAll(Arrays.asList(array1));
    String[] result = set.toArray();
    System.out.println(Arrays.toString(result));这里我可以吧String [] result改成 Object []通过。。 可string[0]还是不清楚
      

  6.   

    JAVA规定在创建数组对象时,必须指定第一维的长度.
    当然new String[0]在现实应用中没有多大意义,但也有他一定的用武之地,比如:
    List l=new ArrayList();
    //....
    //如果l内此时没有元素,那么
    String[] arr=new String[l.size()];//就是这种情况l.size()为0;即使我们调用arr的属性也不会报错,因为他以创建了对象,只不过无法存放数据而以。
    for(int i=0;i<l.size();i++){
    arr[i]=(String)l.get(i);
    }
    我只是举个例子而以,
    现实中我们不会直接去new String[0],但这种现象是经常发生的,就象上面一样。
      

  7.   

    String[] result = set.toArray(new String[set.size()]);