如果不带参数使用ArrayList.toArray,只能返回Object[]。
我想要的是整形数组,如何实现呢。JDK 1.5的帮助文档如下,我看了还是不知道如何用。
<T> T[] toArray(T[] a)Returns an array containing all of the elements in this list in proper sequence; the runtime type of the returned array is that of the specified array. Obeys the general contract of the Collection.toArray(Object[]) method. Specified by:
toArray in interface Collection<E>
Parameters:
a - the array into which the elements of this list are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose. 
Returns:
an array containing the elements of this list. 
Throws: 
ArrayStoreException - if the runtime type of the specified array is not a supertype of the runtime type of every element in this list. 
NullPointerException - if the specified array is null.

解决方案 »

  1.   

    ^_^,肯定了,ArrayList里面就只能放Object,就算转成数组,里面也肯定是Object[].
    先转成Object,然后再转成int.
      

  2.   

    如果你的List里面放置的是String的话。
    String[] strArr= new String[10];
    dataList.toArray(strArr);
    这样的话就可以了。不用使用泛型
      

  3.   

    String[] strArr= new String[dataList.size()];
    dataList.toArray(strArr);
      

  4.   

    楼主的这个问题有意思,所以引来了猩猩。我两个三角不好意思
    我同意interhanchi(闭关修练中!) 的说法,因为在一个ArrayList中加入元素时,这个元素必须是一个object型的,不能是基本数据类型,如果要加入基础数据类型的元素,必须用到对应的类来转换,如int型必须用Integer类来转,Arraylist.add(new Integer(i))。相反,如果要返回list中的数据组,也要用Integer来转回。
      

  5.   

    return (String[])dataList.toArray(String[list.size()]);
      

  6.   

    那JDK的API文档中讲的这种形式有什么作用呢?
    <T> T[] toArray(T[] a)
      

  7.   

    强制转形就可以了
     (int[])xxx.toArray();