Java:数组中的交替布尔值

时间:2016-07-01 04:30:20

标签: java arrays

假设数组foo由交替值组成,索引为0 = true,1 = false,2 = true等。 例如:

for (int index = 0; index < foo.length; index++) 

我正在尝试通过仅使用一个语句来找到完成此代码的方法。到目前为止,我唯一的想法是:

foo[index] = !index--; // I want it to check the last Boolean of index, and reverse it

这当然是错误的代码并且不存在,但有没有办法交替并让它看起来像这样:

foo[index] = (code that goes in here);

5 个答案:

答案 0 :(得分:4)

由于布尔数组最初都是假的。

boolean [] foo = new boolean[100];
for (int i = 0; i < foo.length; i+=2)
    foo[i] = true;

答案 1 :(得分:3)

您可以使用位操作或模除法:

condition

foo[index] = (index & 1) == 0;

答案 2 :(得分:0)

一种方法是使用循环迭代到某个最大值,然后使用模数来确定布尔值:

boolean array = new boolean[foo.length];
for (int index = 0; index < foo.length; index++) {
    array[i] = index % 2 == 0;
}

答案 3 :(得分:-1)

这样的事情应该有效:

Foo[index] = (index%2==0) 

答案 4 :(得分:-1)

for (int index = 0; index < foo.length; index++) foo[index]=!foo[index];
优化但是,如果你想要复杂,你也可以尝试。

for (int index = foo.length-1; index >0; index--) foo[index]=foo[(index+1)%2];foo[index]=!foo[index];