繁体   English   中英

Java·用 lambda 装箱和拆箱原始矩阵

[英]Java · Box and unbox primitive matrices with lambda

经过大量搜索,我终于设法使用 lambda 表达式(特别是double )编写了以下方法来装箱和拆箱原始数组:

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

public static double[] unbox(Double boxed[]) {
    return Stream.of(boxed).mapToDouble(Double::doubleValue).toArray();
}

但是现在我需要对double[][]Double[][]做同样的事情,但我仍然不够理解 lambda 表达式以提出解决方案,我也没有找到任何搜索结果。

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

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

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM