在java中表示几种状态的最佳方法是什么?

时间:2018-03-13 10:46:09

标签: java

假设我有一个char array,我想把它的元素分为三个状态。如果是数字,则将其标记为State 1,如果是运算符,则将其标记为State 2,如果是,则标记为State 3

首先,我初始化一个boolean array来表示它的状态,但我认为它只能存储两种状态:(

然后我切换到int array,但这种方式有点浪费空间。

请你提出更好的主意吗?

2 个答案:

答案 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,如果不将布尔值重新分配给任何其他值,则可以将其用作第三种类型。