您认为哪种效率更高?Java枚举值效率
使用“工作日”仅仅是一个例子:
public enum WeekDay {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY;
}
循环并确认日线第一:
public void parseString(String line) {
String[] tokens = line.split();
String day = tokens[1]; // day 'should' always be a weekday
if (isValidWeekDay(day)) {
WeekDay weekDay = WeekDay.valueOf(day); // won't throw exception
...
} else {
throw new InvalidWeekDayException(day); // subclass of RuntimeException
}
}
private boolean isValidWeekDay(String day) {
for (WeekDay weekDay : WeekDay.values()) {
if(weekDay.toString().equals(day))
return true;
}
return false;
}
或者因为案件的99.99%,天将是正确的:
public void parseString(String line) {
String[] tokens = line.split();
String day = tokens[1]; // day 'should' always be a weekday
try {
WeekDay weekDay = WeekDay.valueOf(day); // might throw exception
...
} catch (IllegalArgumentException e) {
throw new InvalidWeekDayException(day, e);
}
}
更新:
要澄清,输入字符串将来自客户端应用程序,而不是用户。换句话说,在这个例子中,接受非工作日将会是一个错误。
这可能听起来像是一个荒谬的答案,但我认为当我将其描述为最有效时,它运行速度最快。 –
字符串是来自用户输入的内容,还是全部来自内部? – DHall
我想用它来代替,如果你真的在做一个星期几的枚举:http://joda-time.sourceforge.net/field.html#dayOfWeek – NimChimpsky