我想在单个值中存储4个 boolean 值可能性。例如,
我想要一个值来告诉一个人是否是:IsSingle
IsGraduate
IsMale
IsLookingForPartner
因此最好将它们存储在一个字节中,该字节可以分配4位,每个参数一位。如果该位设置为1,则该 boolean 参数为true。因此,我可以进行位移运算来查找所有正确的东西。如果字节的值为111,则前三个参数为true。这是个好方法吗?有没有更好的方法来实现这一目标?
我需要将此值作为单个参数存储在数据库中。
最佳答案
位标志。
public static final int IsSingle = 1 << 0;
public static final int IsGraduate = 1 << 1;
public static final int IsMale = 1 << 2;
public static final int IsLookingForPartner = 1 << 3;
...
if ((Value & IsSingle) != 0) {
}
if ((Value & IsGraduate) != 0) {
}
// Set "Single"
Value |= IsSingle;
// Remove "Graduate"
Value &= ~IsGraduate;