您認爲哪種效率更高?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