首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有lambda的Java·Box和unbox基元矩阵

带有lambda的Java·Box和unbox基元矩阵
EN

Stack Overflow用户
提问于 2017-10-02 18:39:05
回答 1查看 315关注 0票数 3

经过大量搜索之后,我终于成功地编写了以下方法,以便使用lambda表达式(特别是double)对基本数组进行装箱和开箱:

代码语言:javascript
复制
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表达式,所以我想出一个解决方案,我也没有找到任何搜索。

实际上,由于其他原因,我最终需要将我的原始矩阵封装在一个类中,所以我不再需要这样做了,但我认为找到一个答案供将来参考是有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-02 18:45:54

2D数组是数组的数组--您可以对其进行流处理,然后单独处理每个元素,这是一个单独的数组。这样做的一个相对简洁的方法是重用您的boxunbox方法。

代码语言:javascript
复制
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);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46531653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档