Скажем, у меня есть char array
, я хочу классифицировать его элемент по трем состояниям. Если это число, отметьте его как State 1
, если это оператор, отметьте его как State 2
, если еще, отметьте его как State 3
.
Сначала я инициализирую boolean array
для представления его состояния, но я обнаружил, что он может хранить только два состояния :(
Затем я переключаюсь на int array
, но это пустая трата места.
Не могли бы вы предложить получше?
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;}
Согласно этой странице SO: