正如已经提到的,您可以将原语用作位数组。这不是直接使用,但至少它减少了您存储的数据量。
借助我在这里找到的方法 convertToBinary 的魔力:
Integer to binary array
我们可以轻松地处理这些数字。
例如
public static void main(String[] args) {
Integer[] flags = {
0b0101_0101_0101_0101_0101_0101_0101_0101,
0b0101_0101_0101_0101_0101_0101_0101_0101,
0b0101_0101_0101_0101_0101_0101_0101_0101
};
for (Integer flag : flags) {
System.out.println(Arrays.toString(getBooleanArray(flag)));
}
}
private static boolean[] getBooleanArray(Integer value) {
String valueAsString = Integer.toBinaryString(value).replaceFirst("^0+(?!$)", "");
return convertToBinary(value, valueAsString.length());
}
private static boolean[] convertToBinary(int b, int size) {
boolean[] binArray = new boolean[size];
boolean bin;
for (int i = size - 1; i >= 0; i--) {
if (b % 2 == 1) bin = true;
else bin = false;
binArray[i] = bin;
b /= 2;
}
return binArray;
}
输出:
[true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]
[真、假、真、假、真、假、真、假、真、假、真、假、真、假、真、假、真、假、真、假、真、假、真、假,真,假,真,假,真,假,真]
[真,假,真,假,真,假,真,假,真,假,真,假,真,假,真,假,真,假,真,假,真,假,真,假,真,假,真,假,真,假,真]
希望对您有所帮助。