Скажем, у меня есть char array, я хочу классифицировать его элемент по трем состояниям. Если это число, отметьте его как State 1, если это оператор, отметьте его как State 2, если еще, отметьте его как State 3.

Сначала я инициализирую boolean array для представления его состояния, но я обнаружил, что он может хранить только два состояния :(

Затем я переключаюсь на int array, но это пустая трата места.

Не могли бы вы предложить получше?

-1
DoubleX 13 Мар 2018 в 13:46

2 ответа

Лучший ответ

Если вам нужно представить что-то вроде состояния конечного автомата или значений гипотетического класса Card, вы должны использовать enum, что-то вроде

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());
    }
}

PS: Конструктор и поля на самом деле необязательны, если пространство имеет значение: ваше перечисление также может быть

public enum{FIRST,SECOND,THIRD;}
2
Federico klez Culloca 13 Мар 2018 в 10:59

Согласно этой странице SO:

Egzy 13 Мар 2018 в 10:56