【问题标题】:How to sum elements of multiple arrays from a method (in Java)?如何从一个方法(在Java中)对多个数组的元素求和?
【发布时间】:2021-12-09 10:18:01
【问题描述】:

我有一组从方法 (tableMethod) 中提取的一维数组 - 我想获取这些一维数组,然后对每个一维数组中的所有元素求和。我该怎么做?

我有两个循环

  • 一个可以单独对一维数组求和的方法
  • 另一个可以显示所有一维数组的工具

我很难组合 for 循环,以便它可以抓取每个 1d 数组,对其求和,然后移动到下一个 1d 数组,对其求和,等等

结果应该类似于:

  • 总数:391

  • 总数:393

  • 总数:3903

  • 总数:39104

  • 总计:39031 ...等等

      int sum = 0;
      int w = 0;
      int[] arrayOne = tableMethod(table, w);
    
      for (int k = 0; k < arrayOne.length; k++) {
          sum = sum + arrayOne[k];
      }
      for (int i = 0; i < arrayOne.length; i++) {
          System.out.println(Arrays.toString(tableMethod(table, i)));
      }
      System.out.println(sum);
    

    }

【问题讨论】:

  • “数组集”在哪里?你只有一个int[] 数组。
  • 数组集在方法中,我拉它们的方式是使用 table 作为数组,“w”是列号 - 例如,我可以调用 tableMethod (table, 2) - 这将拉动数组然后选择第二列
  • 那个表参数是在哪里定义的?是二维数组吗?

标签: java arrays for-loop methods sum


【解决方案1】:

这样的事情会起作用,

import java.util.stream.IntStream;

int n = <max value of w>
int sum = 0;

for (int i = 0; i < n; i++) {
   int[] array = tableMethod(table, i);
   int arr_sum = IntStream.of(array).sum();
   System.out.println(arr_sum); //single array sum

   sum += arr_sum;
}
System.out.println(sum); //total sum

【讨论】:

  • 快到了!我做了一个类似的代码。我正在寻找的是对一维数组进行单独求和。您提供的循环将第一个数组的元素相加,然后将第二个数组的总和与第一个数组的总和相加,然后将第三个数组与第一个和第二个数组的总和相加,依此类推。
  • 如果我有这 4 个数组:{1, 2, 3, 10, 3, 4, 7, 8, 9} {33, 34, 5, 6, 7, 91, 3, 49 ,10}, {43, 44, 45, 46, 47, 41, 49, 93,34} {10,10,10,10,10,10,10,10,10} 我只想让循环提供每一项的总和:47 238 442 100
【解决方案2】:

代码应该只是使用嵌套循环(计算和的内循环可以用流代替):

int n = ... ; // a number of 1d arrays
int total = 0;
for (int i = 0; i < n; i++) {
    int[] arr = tableMethod(table, i);
    int sum = Arrays.stream(arr).sum();
    System.out.println(sum);
    total += sum;
}
System.out.println(total);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多