计算n个布尔值的“真实”数量

时间:2014-06-24 06:23:45

标签: java

public static boolean StarTrack[][][] = {
  {{true,true,true}, {true,true,true}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}},
  {{false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}},
  {{false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}},
  {{false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}}
};

我想知道如何使用java计算该数组中的trues数。 "我有这个数组,我想计算真实数量。我怎么能这样做?"

2 个答案:

答案 0 :(得分:3)

如果我理解你,你可以用这个 -

int count = 0;
for (boolean[][] bArrArr : StarTrack) {
    for (boolean[] bArr : bArrArr) {
        for (boolean b : bArr) {
            if (b) {
                count++;
            }
        }
    }
}
System.out.println(count);

鉴于你的StarTrack,我得到了

的输出
6

答案 1 :(得分:0)

由于数组是三维的,您可以尝试使用3个for循环:

int count = 0; 

for (int i = 0; i < StarTrack.length; i++) {
    for (int j = 0; j < StarTrack[i].length; j++) {
        for (int k = 0; k < StarTrack[i][j].length; k++) {
            if (StarTrack[i][j][k]) {
                count++;
            }
        }
    }
}

System.out.println(count); // 6

请注意

if (StarTrack[i][j][k])

将检查数组StarTrack[i][j][k]的元素的值是否为true。如果是,请增加count

替代,为了避免使用索引,是使用foreach循环:

for (boolean[][] array2D: StarTrack) {
    for (boolean[] array1D : bArrArr) {
        for (boolean element : bArr) {
            if (element) {
                count++;
            }
        }
    }
}