如何在没有嵌套循环的情况下对数组求和?

时间:2017-09-20 01:41:14

标签: java arrays multidimensional-array sum

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方法,以便他们使用一个循环完成任务。我甚至不知道从哪里开始,任何帮助都会受到赞赏。

1 个答案:

答案 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
相关问题