我可以在Java中使用布尔数组吗?如果我能说
那就太好了boolean[] bools = new boolean[8];
int j = (int)bools;
但我不确定这在Java中是否可行。
答案 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
,但这就是它。