Java 如何将两个二维数组元素相加?
我在如何对两个2D数组进行元素求和方面遇到了麻烦。我引用了另一篇文章:,并且理解了如何使用两个1D数组来实现这一点,但是现在如何处理2D数组的行Java 如何将两个二维数组元素相加?,java,matrix,multidimensional-array,stream,add,Java,Matrix,Multidimensional Array,Stream,Add,我在如何对两个2D数组进行元素求和方面遇到了麻烦。我引用了另一篇文章:,并且理解了如何使用两个1D数组来实现这一点,但是现在如何处理2D数组的行 //在本例中,a[]和b[]是方阵 int[]A=[n][n] int[]B=[n][n] int[]结果=新的int[A.length][A[0].length]; //我知道这只是将第一行相加。 //现在我如何遍历这些行来对整个矩阵元素求和 结果[0]=IntStream.range(0,A.length).map(i->A[0][i]+B[0][
//在本例中,a[]和b[]是方阵
int[]A=[n][n]
int[]B=[n][n]
int[]结果=新的int[A.length][A[0].length];
//我知道这只是将第一行相加。
//现在我如何遍历这些行来对整个矩阵元素求和
结果[0]=IntStream.range(0,A.length).map(i->A[0][i]+B[0][i]).toArray();
我应该补充一点,最终目标是实现线程安全的并行流。这样做:它可以在相同结构的任意两个int数组上工作。基本上,我只是迭代数组的长度,对单个单元格求和,然后首先转换为单个数组,然后再转换为2D数组
是必需的,因为第二个IntStream不是int而是stream对象MapToObj
- 然后我所需要的就是一个
,因为我正在处理第二个映射
,它们是IntStream
ints
- 所有这些都只是用于获取数组值的索引
[[6, 8], [10, 12, 15], [7]]
这样做:它将在相同结构的任意两个int数组上工作。基本上,我只是迭代数组的长度,对单个单元格求和,然后首先转换为单个数组,然后再转换为2D数组
是必需的,因为第二个IntStream不是int而是stream对象MapToObj
- 然后我所需要的就是一个
,因为我正在处理第二个映射
,它们是IntStream
ints
- 所有这些都只是用于获取数组值的索引
[[6, 8], [10, 12, 15], [7]]
这样做:它将在相同结构的任意两个int数组上工作。基本上,我只是迭代数组的长度,对单个单元格求和,然后首先转换为单个数组,然后再转换为2D数组
是必需的,因为第二个IntStream不是int而是stream对象MapToObj
- 然后我所需要的就是一个
,因为我正在处理第二个映射
,它们是IntStream
ints
- 所有这些都只是用于获取数组值的索引
[[6, 8], [10, 12, 15], [7]]
您可以按如下方式对多个不同大小的锯齿状二维阵列进行逐元素求和:
publicstaticvoidmain(字符串[]args){
int[]a={{3,3,3},{3,3,3},{3,3,3};
int[]b={{2},{2};
int[]c={{1,1},{1,1},{1,1,1};
int[][]s=summarrays(a,b,c);
System.out.println(Arrays.deepToString);
// [[6, 4, 3], [6, 4, 3], [4, 4, 4, 1]]
}
公共静态int[][]数组(int[][]数组){
返回Arrays.stream(数组)
//数组对的顺序求和
.reduce((arr1,arr2)->IntStream
//迭代max数组行的索引
.范围(0,数学最大值(arr1.length,arr2.length))
//两行之和
.mapToObj(i->{
//至少应存在一行
如果(arr1.length,则可以按如下方式对不同大小的多个锯齿状2D数组进行元素求和:
publicstaticvoidmain(字符串[]args){
int[]a={{3,3,3},{3,3,3},{3,3,3};
int[]b={{2},{2};
int[]c={{1,1},{1,1},{1,1,1};
int[][]s=summarrays(a,b,c);
System.out.println(Arrays.deepToString);
// [[6, 4, 3], [6, 4, 3], [4, 4, 4, 1]]
}
公共静态int[][]数组(int[][]数组){
返回Arrays.stream(数组)
//数组对的顺序求和
.reduce((arr1,arr2)->IntStream
//迭代max数组行的索引
.范围(0,数学最大值(arr1.length,arr2.length))
//两行之和
.mapToObj(i->{
//至少应存在一行
如果(arr1.length,则可以按如下方式对不同大小的多个锯齿状2D数组进行元素求和:
publicstaticvoidmain(字符串[]args){
int[]a={{3,3,3},{3,3,3},{3,3,3};
int[]b={{2},{2};
int[]c={{1,1},{1,1},{1,1,1};
int[][]s=summarrays(a,b,c);
System.out.println(Arrays.deepToString);
// [[6, 4, 3], [6, 4, 3], [4, 4, 4, 1]]
}
公共静态int[][]数组(int[][]数组){
返回Arrays.stream(数组)
//数组对的顺序求和
.reduce((arr1,arr2)->IntStream
//迭代max数组行的索引
.范围(0,数学最大值(arr1.length,arr2.length))
//两行之和
.mapToObj(i->{
//至少应存在一行
如果(arr1.1)长度