String[] seeds=urlList.toArray(new String[0]);
 

解决方案 »

  1.   

    正解。
    ,ArrayList的toArray里面要指定想扔到哪个数组的!
      

  2.   

    顶一下,这是JDK的新功能,类似于泛型
    要先指定转成的数组类型
      

  3.   

    很简单,循环赋值就行了。
    List<String> list = new ArrayList<String>();
    for(Object s : strArr){
      list.add(s.toString());
    }
    String[] strArr = (String[])list.toArray(new String[0]);
      

  4.   

    String[] strArr = (String[])list.toArray(new String[0]);
      

  5.   


        private void test14(){
            List<Object> objList = new ArrayList<Object>();
            objList.add("A");
            objList.add("B");
            objList.add("C");
            objList.add("D");
            objList.add("E");
            String[] strArray = {"a","b","c","d","e","f","g"};
            String[] strList=objList.toArray(strArray);
            
            for(String s:strList){
                System.out.println(s);
            }
        }打印出来是:
    A
    B
    C
    D
    E
    null
    g
    ---------------------
    看了看JDK代码,也是这么写的。
    谁能解释下为什么要在拷贝数组之后的第一个位置置为null?
      

  6.   

    List.toArray方法的无参数方法是返回Object数组,而有参数的toArray方法是泛型设计,返回类型跟参数类型一致。
      

  7.   

    看APIpublic <T> T[] toArray(T[] a)按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。如果指定的数组能容纳列表,则将该列表返回此处。否则,将分配一个具有指定数组的运行时类型和此列表大小的新数组。 
    如果指定的数组能容纳队列,并有剩余的空间(即数组的元素比队列多),那么会将数组中紧接 collection 尾部的元素设置为 null。(仅 在调用者知道列表中不包含任何 null 元素时才能用此方法确定列表长度)。 
    指定者:
    接口 Collection<E> 中的 toArray
    指定者:
    接口 List<E> 中的 toArray
    覆盖:
    类 AbstractCollection<E> 中的 toArray
    参数:
    a - 要在其中存储列表元素的数组(如果它足够大);否则,为此分配一个具有相同运行时类型的新数组。 
    返回:
    包含列表元素的数组 
    抛出: 
    ArrayStoreException - 如果指定数组的运行时类型不是此列表每个元素的运行时类型的超类型 
    NullPointerException - 如果指定数组为 null
      

  8.   


    对为什么是Null的解释,还是不太理解唉!!
      

  9.   


    如果指定的数组能容纳队列,并有剩余的空间(即数组的元素比队列多),那么会将数组中紧接 collection 尾部的元素设置为 null。(仅 在调用者知道列表中不包含任何 null 元素时才能用此方法确定列表长度)。 
    就是说,设置为null是为了能让代码编写人员在实际操作过程中能够判断并得到该队列的长度(通过一个一个遍历,如果不是null则+1,碰到null就结束),但如果指定的数组中已经有null值了,那么就不能用这种方法获得长度了。我对这几句话的理解。
      

  10.   

    toArray(T[] a)
    return is  <T> T[]          
    按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。 
      

  11.   

    Object [] o = {};
    String [] s = (String [])o ;
      

  12.   

       List<String> list = new ArrayList<String>();
       for(Object s : strArr){
         list.add(s.toString());
      }
      Object[] strArr1 = list.toArray(new String[0]);
      

  13.   


    import java.util.List;
    import java.util.ArrayList;
    /*
    *泛型在运行的时候是类型相同的。所以可以通过如下的方式来处理
    */
    public class Test{
    public static void main(String[] args){
    List<Object> oList = null;
    List<String> sList = new ArrayList<String>();
    sList.add("first");
    sList.add("second");
    Object o = (Object)sList;
    oList = (List<Object>)o;
    Object[] os = oList.toArray();
    for(Object oItem : os){
    System.out.println(oItem);
    }
    }
    }