如何检查数组的结尾

时间:2009-11-06 11:08:11

标签: java arrays

我有一个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

2 个答案:

答案 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()