public class Labwork
{
public static void main(String[] args)
{
int [][] x = { {1, 2, 3}, {4, 5, 6, 7, 8}, {11, 12} };
int [][] y = { {20, 12}, {10, 11}, {12, 13, 14, 15} };
int [][][] z = { x, y };
System.out.println("" + sum(x) + " Expected: 59");
System.out.println("" + sum(y) + " Expected: 107");
System.out.println("" + sum(z) + " Expected: 166");
}
//sums up 2d array
public static int sum (int [][] a)
{
int sum = 0;
for(int b = 0; b < a.length; b++)
{
for(int c = 0; c < a[b].length; c++)
{
sum += a[b][c];
}
}
return sum;
}
//sums up 3d array
public static int sum (int [][][] a)
{
int sum = 0;
for(int d = 0; d < a.length; d++)
{
for(int e = 0; e < a[d].length; e++)
{
for(int f = 0; f < a[d][e].length; f++)
{
sum += a[d][e][f];
}
}
}
return sum;
}
}
所以我的任务的第一部分是完成sum方法,以便输出是预期的总和。现在我必须更改sum方法,以便他们使用一个循环完成任务。我甚至不知道从哪里开始,任何帮助都会受到赞赏。
答案 0 :(得分:1)
int sumA=IntStream.of(AA).sum();
使用此 IntStream intStream = Arrays.stream(a).flatMapToInt(x -> Arrays.stream(x));
int sum = intStream.sum();
AA是我们的int数组。
您有多维数组,因此您必须在流中映射所有数组。 所以你用它试试吧。
span