我有一个int
类型的数组矩阵[] []
它的值为0和1
000000000
101010111
000010100
110011001
值与上述不同,但这是一个随机的例子。
我需要做的是,
当列= 0且行= 0时,循环遍历第一行,将行添加1到循环
如果找到一个,请将其添加到变量
当我到达行的末尾时,我需要沿着colum 0 row = 0将1添加到列以获取循环
然后我需要检查我添加的和变量是%2 = 0
然后我需要检查第1行第1列
并重复所有
我遇到的问题是确定我何时到达行的末尾,这是如何计算的?
for(int row = 0; row < matrix.length; row++){
if(matrix[columns][row] == 1){
sum ++;
if(i am at the end of the row){
//continue with other steps here
答案 0 :(得分:5)
for (int row = 0; row < matrix.length; row++) {
int sum = 0;
for (int col = 0; col < matrix[row].length; col++) {
if (matrix[row][col] == 1){
sum ++;
}
}
// reached the end of the row
}
// reached the end of the array
因此,对于每一行(第一行),迭代每行(第二行)中的列。这将涵盖2d阵列中的所有元素。你知道你已经到了行的末尾,因为你已经用完了列(并退出了内循环)。
答案 1 :(得分:3)
对你的问题不是一个确切的答案,但退后一步(不知道你的代码周围的上下文)它看起来你可能想要使用BitSet而不是0和1的数组。它使用更少的内存,并有一堆方便的方法(通常也比你自己编写的代码更快)。例如,计算你似乎正在做的设置位数是BitSet.cardinality()。