有人回答了一个问题,回答说我听不懂。
我理解的第一个答案是:
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的答案让我感到困惑:
Double[][] inverse = Arrays.stream(temp)
.map(d -> Arrays.stream(d).boxed().toArray(Double[]::new))
.toArray(Double[][]::new);Arrays.stream(temp)是否返回每一行temp?
然后下一行映射是否接受行中的每个元素,将其转换为一个对象,并将其放置在一个一维array>中。
然后下一行取1元,然后把它放在2元上?
发布于 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-返回给定数组中包含的元素序列。temp是double[]的数组,因此流将为double[] (如果将其视为2D数组,则为“行”),在下一个操作中,d将是double[]。
那么下一行映射是否接受行中的每个元素,将其转换为一个对象并将其放置在一个一维数组中?
https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#stream-double:A-返回double值的Stream,即double[] d (局部变量)的值。这些变量是boxed到Double,并组合在一起形成一个Double[]。
然后下一行取1元,然后把它放在2元线上?
然后将所有这些Double[]放在一起构建一个Double[][]。
https://stackoverflow.com/questions/51275364
复制相似问题