在Java中使用布尔数组?

时间:2009-10-06 21:28:08

标签: java casting boolean

我可以在Java中使用布尔数组吗?如果我能说

那就太好了
boolean[] bools = new boolean[8];
int j = (int)bools;

但我不确定这在Java中是否可行。

5 个答案:

答案 0 :(得分:4)

不,你不能用boolean[]做到这一点 - 但听起来你可能想要一个BitSet,它是一组布尔值的紧凑表示。

答案 1 :(得分:3)

如果你想要一个位模式,我认为你最好使用位掩码,例如

final int BIT_1 = 0x00000001;
final int BIT_2 = 0x00000002;

// represents a bit mask
int value;

// enable bit 2
value |= BIT_2

// switch off bit 1
value &= ~BIT_1

// do something if bit 1 is set...
if (value & BIT_1) {

等。有关更多示例,请参阅here

答案 2 :(得分:3)

Java布尔值的大小是特定于实现的,并且在任何情况下都可能不是一个单独的位。 如果您想要一种简单的方法来操作位,请查看BitSet

答案 3 :(得分:3)

这是从boolean[]转换为整数的一种快捷方式:

static int intFromBooleanArray(boolean[] array) {
    return new BigInteger(Arrays.toString(array)
                          .replace("true", "1")
                          .replace("false", "0")
                          .replaceAll("[^01]", ""), 2).intValue();
}

示例:

intFromBooleanArray(new boolean[] {true, false, true, false, true, false});
// => 42.

答案 4 :(得分:0)

您可以将boolean[]投射到Object,但这就是它。