Escribo una estructura de Programación en Java. Tengo un Hashtable con enum Day as Key y lista de timeranges como valor. De esta manera:Enum como clave de HashTable
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
private Hashtable<Day,TimeRanges> _applyCalendar;
donde la clase TimeRanges es ...
public class TimeRanges implements List<TimeRange> {
Al agregar elementos a _appleCalendar hago esto:
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);
}
}
}
Mi problema es el método contains() doesn no funciona bien HashTable no puede ser capaz de encontrar el elemento existente en hashtable, siempre ingrese la primera condición: S
¿Hay alguna manera de hacer esto sin debe declarar Day como clase e implementar comareTo() ??
¿Por qué está usando 'Hashtable' en absoluto? – skaffman
Con las teclas Enum, también tiene la opción de utilizar el (a menudo ignorado) [EnumMap] (http://docs.oracle.com/javase/6/docs/api/java/util/EnumMap.html), está respaldado por una matriz y todas las operaciones son tiempo constante. No es que eso marque la diferencia aquí, pero tampoco cuesta nada. – Dmitri