将DoubleList的ArrayList转换为double []

时间:2013-12-04 20:21:00

标签: java

我正在使用Apache数学库作为矩阵,这是我尝试使用的方法之一:

MatrixUtils.createRealDiagonalMatrix(double[] diagonal)

我不知道编译时的大小,所以我使用ArrayList<Double>存储对角线,后来我想把它作为参数传递给上面的函数。如何将ArrayList投射到double[]?我试过了:

ArrayList<Double> arr = new ArrayList<Double>(n);
... // Populate arr
MatrixUtils.createRealDiagonalMatrix(arr.toArray(new Double[n]));

但是由于Double []和double []不同,我得到了类型不匹配错误。

2 个答案:

答案 0 :(得分:2)

您可以使用ArrayUtils.toPrimitive(double[])

double[] diagonal = ArrayUtils.toPrimitive(arr.toArray(new Double[arr.size()]));

答案 1 :(得分:1)

如果您可以使用第三方库,我建议您试试guava库。它有很多有用的功能,您的案例可以通过以下方式处理:

List<Double> data = new ArrayList<Double>(); // your data
MatrixUtils.createRealDiagonalMatrix(Doubles.toArray(data));

请参阅javadoc以供参考。