int[]行的总和为int[](Java)
我试图获取2d数组中每行的总和,并将值存储在新数组中。现在sum[]只返回存储在第一行中的值。请帮我理解我在这里遗漏了什么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
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位数字为空。我已将数组_长度声明为常数,因为我限制用户输入以使用相同的常数填充数组。我希望避免为了可读性而切换[行][列]。我不知道你为什么会被否决,谢谢你的帮助。我没有投票,但我猜是返回值循环中的代码>导致方法返回过快。(现已删除)是的,这是错误的复制粘贴错误。我只是专注于逻辑。但是改变了它谢谢你这个密码把它整理好了。我明白我错在哪里了。谢谢,这也起作用了,尽管我以前没有使用过流函数。