Java和xB7;带lambda的Box和unbox本原矩阵

Java和xB7;带lambda的Box和unbox本原矩阵,java,matrix,lambda,boxing,unboxing,Java,Matrix,Lambda,Boxing,Unboxing,经过大量搜索,我终于成功地使用lambda表达式(double具体地说)编写了以下方法来装箱和取消装箱原语数组: 但是现在我需要对double[][]和double[][]执行相同的操作,但我仍然不太理解lambda表达式,因此无法找到解决方案,也没有在搜索中找到任何内容 实际上,由于其他原因,我最终需要将我的基本矩阵包装到一个类中,因此我不再需要这样做,但我认为有一个答案供将来参考是很有用的。二维数组是数组的数组-您可以流式处理它,然后单独处理每个元素,每个元素本身就是一个数组。一个相对简洁的

经过大量搜索,我终于成功地使用lambda表达式(
double
具体地说)编写了以下方法来装箱和取消装箱原语数组:

但是现在我需要对
double[][]
double[][]
执行相同的操作,但我仍然不太理解lambda表达式,因此无法找到解决方案,也没有在搜索中找到任何内容


实际上,由于其他原因,我最终需要将我的基本矩阵包装到一个类中,因此我不再需要这样做,但我认为有一个答案供将来参考是很有用的。

二维数组是数组的数组-您可以流式处理它,然后单独处理每个元素,每个元素本身就是一个数组。一个相对简洁的方法是重用
box
unbox
方法

public static Double[][] box(double unboxed[][]) {
    return Arrays.stream(unboxed).map(Boxer::box).toArray(Double[][]::new);
}

public static double[][] unbox(Double boxed[][]) {
    return Arrays.stream(boxed).map(TmpTest::unbox).toArray(double[][]::new);
}

酷,谢谢!而且,毫不奇怪,增加更多的括号增加了这些方法可以处理的维度。
public static Double[][] box(double unboxed[][]) {
    return Arrays.stream(unboxed).map(Boxer::box).toArray(Double[][]::new);
}

public static double[][] unbox(Double boxed[][]) {
    return Arrays.stream(boxed).map(TmpTest::unbox).toArray(double[][]::new);
}