所以我有一个虚拟的二维数组:
int mat[][] = {
{10, 20, 30, 40, 50, 60, 70, 80, 90},
{15, 25, 35, 45},
{27, 29, 37, 48},
{32, 33, 39, 50, 51, 89}};
我想把所有的值按列累加起来,这样就可以加上10+15+27+32,然后返回84,依此类推。到目前为止我有:
public void sum(int[][] array) {
int count = 0;
for (int rows = 0; rows < array.length; rows++) {
for (int columns = 0; columns < array[rows].length; columns++) {
System.out.print(array[rows][columns] + "\t");
count += array[0][0];
}
System.out.println();
System.out.println("total = " + count);
}
}
有人能帮忙吗?还有 System.out.print(array[rows][columns] + "\t" );
按行打印数组,有没有按列打印的方法?
5条答案
按热度按时间wb1gzix01#
你可以用
Stream.reduce
按列汇总矩阵行元素的方法:另请参见:
•2个不同2d阵列的总和
•如何计算2d数组中每列的平均值?
1tu0hz3e2#
使用arraylist获取所有列的总和。
a14dhokn3#
……兰姆达也是这样:
获取
int[] array
:nbnkbykc4#
一种可能的解决方案是,首先找到所有子数组的最大大小,然后多次迭代以找到每列的总和,从而避免不可用的值。
2mbi3lxu5#
这里有一个选择。
提供的数据。
首先,找到存储和的数组的最大长度。
分配新数组来保存和。
现在就用
Arrays.setAll
方法求和,小心不超过当前数组的长度。
印刷品