5
我正在寫一個Java中的計劃結構。 我有一個枚舉日作爲關鍵和時間範圍作爲價值列表的哈希表。 像這樣:枚舉作爲HashTable的關鍵
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
private Hashtable<Day,TimeRanges> _applyCalendar;
其中TimeRanges類...
public class TimeRanges implements List<TimeRange> {
當我添加元素_appleCalendar我這樣做:
public void addApplyDay(Day day,TimeRanges trs) {
if (! _applyCalendar.contains(day)) {
_applyCalendar.put(day, trs);
} else {
for (TimeRange t : trs) {
_applyCalendar.get(day).add(t);
}
}
}
我的問題是方法包括()沒有按沒有正確的工作。 HashTable無法在哈希表中找到現有元素,所有時間都輸入第一個條件:S
有沒有辦法做到這一點,而不應該將Day聲明爲類並實現comareTo()?
爲什麼你使用'Hashtable'呢? – skaffman 2012-02-09 22:47:48
使用Enum鍵,你也可以選擇使用(經常被忽略的)[EnumMap](http://docs.oracle.com/javase/6/docs/api/java/util/EnumMap.html),它的支持一個數組和所有操作都是不變的時間。並不是說這裏會有所作爲,但也不會花費任何東西。 – Dmitri 2012-02-09 23:26:55