Java 将双精度[]转换为双精度[][]

Java 将双精度[]转换为双精度[][],java,Java,我需要将原语类型的双[][]2D数组转换为双包装类的双[][]2D数组 除了我已有的解决方案之外,还有更好的解决方案吗 导入java.util.stream.IntStream; 公共类双重效用{ 公共静态最终双精度[]空双精度对象双精度数组=新双精度[0]; 静态最终双[][]testArray={{1,2,3},{4,5,6},{7,8,9}; 公共静态双精度[]ToObject双精度[]数组{ 返回IntStream.range0,array.length.mapToObjx->toObj

我需要将原语类型的双[][]2D数组转换为双包装类的双[][]2D数组

除了我已有的解决方案之外,还有更好的解决方案吗

导入java.util.stream.IntStream; 公共类双重效用{ 公共静态最终双精度[]空双精度对象双精度数组=新双精度[0]; 静态最终双[][]testArray={{1,2,3},{4,5,6},{7,8,9}; 公共静态双精度[]ToObject双精度[]数组{ 返回IntStream.range0,array.length.mapToObjx->toObjectarray[x]。ToArrayDuble[]]::新建; } 公共静态无效字符串[]args{ Double[][]returnArray=toObjecttestArray; System.out.PrintLTestArray; System.out.printlnreturnArray; } /** * *来自ApacheCommonLang3的代码 * *将基元双精度数组转换为对象。 * * *此方法为{@code null}输入数组返回{@code null}。 * *@param数组{@code double}数组 *@返回一个{@code Double}数组,如果数组输入为null,则返回{@code null} */ 公共静态双[]ToObject最终双[]数组{ 如果数组==null{ 返回null; }如果array.length==0,则为else{ 返回空的双对象数组; } 最终双精度[]结果=新双精度[array.length]; 对于int i=0;i
提前感谢。

您也可以按如下方式进行:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        double[][] testArray = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
        Double[][] returnArray = Arrays.stream(testArray).map(d -> Arrays.stream(d).boxed().toArray(Double[]::new))
                .toArray(Double[][]::new);
        System.out.println(Arrays.deepToString(testArray));
        System.out.println(Arrays.deepToString(returnArray));
    }
}
输出:


可能很好。你说的更好是什么意思?有许多可能的指标。您希望解决此解决方案的哪些具体问题?我想性能将是最重要的指标。内存使用率也应该尽可能低。
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]