首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 8语法令人费解

Java 8语法令人费解
EN

Stack Overflow用户
提问于 2018-07-10 23:49:14
回答 1查看 135关注 0票数 1

有人回答了一个问题,回答说我听不懂。

我理解的第一个答案是:

代码语言:javascript
复制
Double[][] inverse = new Double[temp.length][temp[0].length];
for (int i = 0; i < temp.length; i++)
   for (int j = 0; j < temp[0].length; j++)
        inverse[i][j] = temp[i][j];
    }
}

但是,这个需要Java 8的答案让我感到困惑:

代码语言:javascript
复制
Double[][] inverse = Arrays.stream(temp)
    .map(d -> Arrays.stream(d).boxed().toArray(Double[]::new))
    .toArray(Double[][]::new);

Arrays.stream(temp)是否返回每一行temp?

然后下一行映射是否接受行中的每个元素,将其转换为一个对象,并将其放置在一个一维array>中。

然后下一行取1元,然后把它放在2元上?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-11 08:23:45

这个全进程接受一个double[][] Double[][],并返回一个盒式副本Double[][]

Arrays.stream( temp )是否返回每一行temp?

https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#stream-T:A-返回给定数组中包含的元素序列。tempdouble[]的数组,因此流将为double[] (如果将其视为2D数组,则为“行”),在下一个操作中,d将是double[]

那么下一行映射是否接受行中的每个元素,将其转换为一个对象并将其放置在一个一维数组中?

https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#stream-double:A-返回double值的Stream,即double[] d (局部变量)的值。这些变量是boxedDouble,并组合在一起形成一个Double[]

然后下一行取1元,然后把它放在2元线上?

然后将所有这些Double[]放在一起构建一个Double[][]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51275364

复制
相关文章

相似问题

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