int[]行的总和为int[](Java)

int[]行的总和为int[](Java),java,arrays,Java,Arrays,我试图获取2d数组中每行的总和,并将值存储在新数组中。现在sum[]只返回存储在第一行中的值。请帮我理解我在这里遗漏了什么 public static int[] rowSum(int[][] matrix) //find sum of digits in given row { int[] sum = new int[6]; for (int col = 0; col < ARRAY_LENGTH; col++) { for (int row = 0

我试图获取2d数组中每行的总和,并将值存储在新数组中。现在sum[]只返回存储在第一行中的值。请帮我理解我在这里遗漏了什么

public static int[] rowSum(int[][] matrix)  //find sum of digits in given row


 {


  int[] sum = new int[6];

  for (int col = 0; col < ARRAY_LENGTH; col++)
  {

     for (int row = 0; row < ARRAY_LENGTH; row++)
     {

        sum[row] += matrix[col][row];
     }


  }

  return sum;


}
public static int[]行和(int[]矩阵)//查找给定行中的数字和
{
int[]和=新的int[6];
for(int col=0;col
简单

public static int[] rowSum(int[][] matrix)  //find sum of digits in given row


 {
  int[] sum = new int[6];
  ARRAY_LENGTH = 6;
  for (int col = 0; col < ARRAY_LENGTH; col++)
  {

     for (int row = 0; row < ARRAY_LENGTH; row++)
     {

        sum[col] += matrix[col][row];
     }
  }  
}
public static int[]行和(int[]矩阵)//查找给定行中的数字和
{
int[]和=新的int[6];
数组长度=6;
for(int col=0;col

小心数组长度

以下代码也适用于不同大小的2D数组

    public static void main(String[] args) {
        int[][] matrix = {
            {2, 3, 4, 5, 6, 7, 8, 9}, // 8 elements
            {2, 1, 4, 5, 7, 2, 86}    // 7 elements
        };
        int[] sum = rowSum(matrix);
        for (int i : sum) {
            System.out.println(i);
        }
    }

    public static int[] rowSum(int[][] matrix) //find sum of digits in given row
    {
        int[] sum = new int[matrix.length];
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                sum[i] = sum[i] + matrix[i][j];
            }
        }
        return sum;
    }
publicstaticvoidmain(字符串[]args){
int[][]矩阵={
{2,3,4,5,6,7,8,9},//8个元素
{2,1,4,5,7,2,86}//7个元素
};
int[]总和=行总和(矩阵);
用于(整数i:总和){
系统输出打印LN(i);
}
}
公共静态int[]行和(int[]矩阵)//查找给定行中的数字和
{
int[]总和=新的int[matrix.length];
对于(int i=0;i
由于您使用Java 8,因此可以使用:

return Arrays.stream(matrix) // Stream<int[]>
    .mapToInt(row -> Arrays.stream(row).sum()) // IntStream
    .toArray(); // int[]
返回数组.stream(矩阵)//stream
.mapToInt(行->数组.stream(行).sum())//IntStream
.toArray();//int[]

方法在到达第一次出现的
返回和时返回
,因此,
永远不会递增。似乎没有必要。jp我删除了第一个return语句。更改此sum[row]+=matrix[col][row];求和[col]+=矩阵[col][row];sum[col]将包含数组“@raghavendra”中每一行的总和,该数组给出第一行的总和,但rowSum[]中剩余的5位数字为空。我已将数组_长度声明为常数,因为我限制用户输入以使用相同的常数填充数组。我希望避免为了可读性而切换[行][列]。我不知道你为什么会被否决,谢谢你的帮助。我没有投票,但我猜是
返回值导致方法返回过快。(现已删除)是的,这是错误的复制粘贴错误。我只是专注于逻辑。但是改变了它谢谢你这个密码把它整理好了。我明白我错在哪里了。谢谢,这也起作用了,尽管我以前没有使用过流函数。