2009-11-06 57 views
0

我有int类型的阵列如何检查数组末尾

矩阵[] []

,它具有0值和1

000000000 
101010111 
000010100 
110011001 

的值不同以上,但是这是一个随机的例子。

我需要做的是,

遍历当柱= 0和行= 0加1行到循环

如果找到一个其添加到变量

第一行

当我到达行的末尾,我需要然后去下行列0行= 0加1列以获得循环

然后我需要检查我已添加到总和变量是% 2 = 0

然后我需要检查第1分1列

,并重复所有

我有被确定时,我已经到了一个排的末端的problerm,这是怎么计算出来的?

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 

回答

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数组中的所有元素。你知道你已经到达了行的末尾,因为你已经用完了列(并退出了内部循环)。

3

不是真的准确的回答你的问题,但退一步(不知道在你的代码的上下文中)在我看来,你可能想使用一个BitSet而不是0和1的阵列。它使用较少的内存,并有一堆方便的方法(通常也比你自己编写的代码更快)。计算你似乎在做的设置比特数是BitSet.cardinality()