Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java toArray()方法:基元结果类型_Java_Arrays_Generics - Fatal编程技术网

Java toArray()方法:基元结果类型

Java toArray()方法:基元结果类型,java,arrays,generics,Java,Arrays,Generics,我正在努力做到以下几点: double[][] ret = new double[res.size()][columnSize]; for(int i = 0; i < res.size(); i++){ ret[i] = res.get(i).toArray(new double[columnSize]); } double[]ret=new double[res.size()][columnSize]; 对于(int i=0;i

我正在努力做到以下几点:

double[][] ret = new double[res.size()][columnSize];
for(int i = 0; i < res.size(); i++){
     ret[i] = res.get(i).toArray(new double[columnSize]);
}
double[]ret=new double[res.size()][columnSize];
对于(int i=0;i
其中res声明为
列表
。上述方法不起作用,因为toArray()方法需要一个参数化数组来推断结果类型,而该数组不能是基元

现在,我可以将我的方法的返回类型更改为
Double[][
,但稍后我会使用来自不同API的其他函数,这些函数需要
Double[][][
9primitives)。这意味着会有很多向上的转变,不是吗


有什么解决方案、建议吗

不能在集合中保留基元,需要将集合转换为基元类型数组,如下所示:

double[] toArray(Collection<Double> collection) {
    double[] arr = new double[collection.size()];
    int i = 0;
    for (Double d : collection) {
        arr[i++] = d;
    }
    return arr;
}
double[]到阵列(集合){
double[]arr=新的double[collection.size()];
int i=0;
用于(双d:收集){
arr[i++]=d;
}
返回arr;
}
With:完成此操作。

用于二维阵列

private static int[][] convertListArray(ArrayList<Integer[]> al) {
    int[][] ret = new int[al.size()][];
    for (int i=0; i < al.size(); i++) {
        Integer[] row = al.get(i);
        ret[i] = new int[row.length];
        for (int j = 0; j < row.length; j++) {
            ret[i][j] = row[j];
        }
    }
    return ret;
}
private static int[]convertListArray(ArrayList al){
int[][]ret=新的int[al.size();
对于(int i=0;i
这是一个非常简单的解决方案。。。但没有这么好:)不幸的是,没有更好的解决方案。哇,令人难以置信的是Java仍然没有数组自动拆箱。顺便说一句,这个答案是针对单一维度的。问题是2D数组,因此需要嵌套for循环。为这么简单的事情疯狂。哇,这真的很有用,伙计!简单地看一下,乍一看,它就像一个库,弥补了java的错误和缺少的实现。顺便说一句,你可能知道类似的事情吗?我在吃番石榴。如果你对番石榴提供的所有东西都感兴趣,那么最好的开始是。是的,看起来不错。你认为这是最复杂的套房吗?嗯。我不知道你是什么意思,但不使用番石榴就像把一只手绑在背后一样。我想知道是否有类似的软件包,也许是针对Java的其他问题,我应该知道