函数原型是这样定义的:xx yy.toArray(zz)。其中yy是需要被转换的ArrayList对象,zz是转换成数组的对象。现在我的问题是这个函数怎么还有一个返回值xx?而且也是数组。这不是一个操作吗?难道不应该将函数返回值设为void?那么java既然这样设计,xx又是什么呢?什么情况下能用到呢?谢谢大家,我英文菜,jdk的说明看了几遍也没看懂

解决方案 »

  1.   

    zz数组空间可能不够,这个时候就会返回一个数组包含全部list元素
    也就是说,如果你的zz不能容纳yy的全部元素,jvm就重新分配一个
    Array返回,如果空间zz够大,就返回原zz,多余空间用赋null
      

  2.   

    有点明白了,不过这样设计好奇怪啊,xx yy.toArray(zz)里的xx和zz都不一定够大,按大家的说法当我给的zz不够大时,java会自动返回一个大小合适的xx数组,那么这个xx数组我又要如何定义呢?如果我接收这个函数的数组xx也不够大呢?java能帮我扩容?这岂不是成了动态数组?另外如果是这样,大家平时是不是干脆就这样写好了:Integer[] i = new Integer[1];
    i = ArrayList.toArray(i);这样是不是就无论如何都能成功转换成数组i了?
      

  3.   

    改正一下:Integer[] i = new Integer[1];
    i = aArrayList.toArray(i);