假设我有一个char array
,我想把它的元素分为三个状态。如果是数字,则将其标记为State 1
,如果是运算符,则将其标记为State 2
,如果是,则标记为State 3
。
首先,我初始化一个boolean array
来表示它的状态,但我认为它只能存储两种状态:(
然后我切换到int array
,但这种方式有点浪费空间。
请你提出更好的主意吗?
答案 0 :(得分:2)
如果您需要表示有限状态机的状态或假设类卡的值,您应该使用枚举,例如
Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested;
private void App_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e)
{
if ( AppFrame.CanGoBack )
{
AppFrame.GoBack();
e.Handled = true;
}
}
PS:如果空间很重要,构造函数和字段实际上是可选的:你的枚举也可以是
public class EnumTest {
public enum State{
START_STATE("1"),INTER_STATE("2"),END_STATE("3");
String name;
State(String name){this.name = name;}
String getName() {return name;}
}
public static void main(String[] args) {
for(State state : EnumTest.State.values())
System.out.println(state.getName());
}
}
答案 1 :(得分:1)
根据此SO页面:https://stackoverflow.com/questions/952169/what-is-the-third-boolean-state-in-java,您还可以使用包装的布尔默认为null,如果不将布尔值重新分配给任何其他值,则可以将其用作第三种类型。