私はJavaのスケジュール構造を書いています。 私はKeyとしてenum DayとHashtableを持ち、値としてtimerangesのリストを持っています。ハッシュテーブルのキーとしての列挙型
timeRangeはクラスがあるpublic enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
private Hashtable<Day,TimeRanges> _applyCalendar;
...
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);
}
}
}
私の問題が含まれている方法であるが()のdoesnこのよう 右の仕事。 HashTableはハッシュテーブルの既存の要素を見つけることができず、常に最初の条件を入力します:S
Dayをクラスとして宣言し、comareTo()を実装する必要がありますか?
「ハッシュテーブル」を使用している理由は何ですか? – skaffman
Enumキーでは、(よく見落とされる)[EnumMap](http://docs.oracle.com/javase/6/docs/api/java/util/EnumMap.html)を使用するオプションもあります。配列とすべての操作は一定の時間です。ここで違いを生むわけではありませんが、何も費用はかかりません。 – Dmitri