Sto scrivendo una struttura di pianificazione in Java. Ho un Hashtable con enum Day come chiave ed elenco di timeranges come valore. Ti piace questa:Enum come chiave di HashTable
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
private Hashtable<Day,TimeRanges> _applyCalendar;
dove la classe TimeRanges è ...
public class TimeRanges implements List<TimeRange> {
Quando aggiungo elementi per _appleCalendar faccio questo:
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);
}
}
}
Il mio problema è il metodo contiene() doesn funziona bene HashTable non può essere in grado di fondare elemento esistente nella tabella hash, tutto il tempo entra nella prima condizione: S
Esiste un modo per fare questo senza dovrebbe dichiarare giorno di classe e implementare comareTo() ??
Perché stai utilizzando 'Hashtable'? – skaffman
Con i tasti Enum hai anche la possibilità di usare il (spesso trascurato) [EnumMap] (http://docs.oracle.com/javase/6/docs/api/java/util/EnumMap.html), è supportato da un array e tutte le operazioni sono costanti. Non che farebbe la differenza qui, ma non costa nulla, neanche. – Dmitri